質問

wxを使用してOSXでメニューバーアイコンを作成する方法に関するポインタが見つかりませんでした。元々はwxTaskBarIconクラスで十分だと思っていましたが、実際にはDockにアイコンを作成します。 Windowsでは、wxTaskBarIconはSystrayアイコンと関連メニューを作成しますが、mac osxではメニューバーアイコンを作成すると思います。

役に立ちましたか?

解決

wxTaskBarIconType DOCK ではなく、 STATUSITEM に設定する必要があります。このためのCocoa APIは、 NSStatusBar および NSStatusItem です。 これらを呼び出すwxWidgetsのコード

他のヒント

この投稿 by Robin Dunn 、wxPythonの作成者は、wxPythonはまだMacのメニューバーアイコンをサポートしていないと説明しています。 Dockのみをサポートしています。

wxPython 2.9.2.0以降、 SetIcon を呼び出す限り、 wx.TaskBarIcon はOSXで代わりにメニューバーアイコンを作成します。

「ステータスメニュー」にアイコンを配置するwiki.wxpython.orgの例があります。 macOSメニューバーのセクション(右側)(ページタイトルを無視): https://wiki.wxpython.org/Custom%20Mac%20OsX% 20Dock%20Bar%20Icon

wxpython 3.0.0.0 osx-cocoa(クラシック)でpython 2.7.14(minicondaを使用してインストール)を実行するmacOS High Sierra(10.13.3)で動作します。

同様に、Python 3.6.4およびwxpython 4.0.1 osx-cocoa(phoenix)で動作します。 マイナーなコード変更が必要:

  • wx.advをインポートする必要があります
  • wx.TaskBarIconはwx.adv.TaskBarIconになります
  • wx.IconFromBitmapはwx.Iconになります

他のプラットフォームでもstatus / notification / taskbar-typeアイコンが生成されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top