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

时间:2008-09-28 14:02:29

标签: macos wxpython wxwidgets

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

4 个答案:

答案 0 :(得分:4)

您必须将wxTaskBarIconType设置为STATUSITEM,而不是DOCK。针对此的Cocoa API为NSStatusBarNSStatusItem; here's the code in wxWidgets that calls to them

答案 1 :(得分:2)

wxPython的创建者Robin Dunn的

This post解释说,wxPython还不支持Mac上的菜单栏图标。他们只支持Dock。

答案 2 :(得分:1)

从wxPython 2.9.2.0开始wx.TaskBarIcon现在将在OSX上创建一个菜单栏图标,只要你拨打SetIcon

答案 3 :(得分:0)

wiki.wxpython.org上有一个示例,它在macOS菜单栏的“状态菜单”部分(右侧)放置一个图标(忽略页面标题): https://wiki.wxpython.org/Custom%20Mac%20OsX%20Dock%20Bar%20Icon

对于我来说,运行python 2.7.14(使用miniconda安装)的macOS High Sierra(10.13.3)和wxpython 3.0.0.0 osx-cocoa(经典)。

同样,它适用于python 3.6.4和wxpython 4.0.1 osx-cocoa(phoenix); 需要进行少量代码更改:

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

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