Macos 如何使用wx在mac osx上设置菜单栏图标

Macos 如何使用wx在mac osx上设置菜单栏图标,macos,wxpython,wxwidgets,Macos,Wxpython,Wxwidgets,我找不到任何关于如何使用wx在OSX上创建菜单栏图标的指针。我原本以为wxTaskBarIcon类可以,但实际上它在Dock上创建了一个图标。在Windows上,wxTaskBarIcon会创建一个Systray图标和相关菜单,我认为在mac osx上它会创建一个菜单栏图标,我想不会。您必须将wxTaskBarIconType设置为STATUSITEM,而不是DOCK。这方面的Cocoa API是NSStatusBar和NSStatusItem wxPython的创建者罗宾·邓恩解释说,wxPy

我找不到任何关于如何使用wx在OSX上创建菜单栏图标的指针。我原本以为wxTaskBarIcon类可以,但实际上它在Dock上创建了一个图标。在Windows上,wxTaskBarIcon会创建一个Systray图标和相关菜单,我认为在mac osx上它会创建一个菜单栏图标,我想不会。

您必须将
wxTaskBarIconType
设置为
STATUSITEM
,而不是
DOCK
。这方面的Cocoa API是
NSStatusBar
NSStatusItem

wxPython的创建者罗宾·邓恩解释说,wxPython目前还不支持mac上的菜单栏图标。它们只支持Dock。

从wxPython 2.9.2.0
wx开始。TaskBarIcon
现在将在OSX上创建菜单栏图标,只要您调用
SetIcon

wiki.wxPython.org上有一个示例,它将图标放在macOS菜单栏的“状态菜单”部分(右侧)(忽略页面标题):

它适用于运行Python2.7.14(使用miniconda安装)和WxPython3.0.0.0OSX cocoa(经典)的macOS High Sierra(10.13.3)

类似地,它与Python3.6.4和Wxpython4.0.1 osx cocoa(phoenix)配合使用; 需要对代码进行细微更改:

  • 您必须导入wx.adv
  • wx.TaskBarIcon变为wx.adv.TaskBarIcon
  • wx.IconFromBitmap变为wx.Icon

这在其他平台上也会生成一个状态/通知/任务栏类型的图标。

Hmm,我不明白。这是C代码。如何在Python中将TaskBaricType设置为STATUSITEM?Robin Dunn的帖子不再适用。