【发布时间】:2010-09-13 20:07:47
【问题描述】:
我找不到任何关于如何使用 wx 在 OSX 上创建菜单栏图标的指示。我原本以为 wxTaskBarIcon 类可以,但它实际上在 Dock 上创建了一个图标。在 Windows 上,wxTaskBarIcon 创建一个 Systray 图标和相关菜单,我认为在 mac osx 上它会创建一个菜单栏图标,我猜不会。
【问题讨论】:
我找不到任何关于如何使用 wx 在 OSX 上创建菜单栏图标的指示。我原本以为 wxTaskBarIcon 类可以,但它实际上在 Dock 上创建了一个图标。在 Windows 上,wxTaskBarIcon 创建一个 Systray 图标和相关菜单,我认为在 mac osx 上它会创建一个菜单栏图标,我猜不会。
【问题讨论】:
wiki.wxpython.org 上有一个示例,它在 macOS 菜单栏的“状态菜单”部分(右侧)放置了一个图标(忽略页面标题): https://wiki.wxpython.org/Custom%20Mac%20OsX%20Dock%20Bar%20Icon
它适用于运行 python 2.7.14(使用 miniconda 安装)和 wxpython 3.0.0.0 osx-cocoa(经典)的 macOS High Sierra (10.13.3)。
同样,它适用于 python 3.6.4 和 wxpython 4.0.1 osx-cocoa (phoenix); 需要小的代码更改:
这也会在其他平台上生成状态/通知/任务栏类型的图标。
【讨论】:
从 wxPython 2.9.2.0 开始,wx.TaskBarIcon 现在将在 OSX 上创建一个菜单栏图标,只要您调用 SetIcon。
【讨论】:
您必须将wxTaskBarIconType 设置为STATUSITEM,而不是DOCK。用于此的 Cocoa API 是 NSStatusBar 和 NSStatusItem; here's the code in wxWidgets that calls to them.
【讨论】: