【问题标题】:how to set a menubar icon on mac osx using wx如何使用 wx 在 mac osx 上设置菜单栏图标
【发布时间】:2010-09-13 20:07:47
【问题描述】:

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

【问题讨论】:

    标签: macos wxpython wxwidgets


    【解决方案1】:

    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); 需要小的代码更改:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        This postThis post 由 wxPython 的创建者 Robin Dunn 解释说 wxPython 还不支持 mac 上的菜单栏图标。他们只支持 Dock。

        【讨论】:

        • Robin Dunn 的帖子不再适用。
        【解决方案4】:

        您必须将wxTaskBarIconType 设置为STATUSITEM,而不是DOCK。用于此的 Cocoa API 是 NSStatusBarNSStatusItemhere's the code in wxWidgets that calls to them.

        【讨论】:

        • 嗯,我不明白。那是C代码。如何在 Python 中将 taskbaricontype 设置为 STATUSITEM?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-17
        • 2011-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-11
        相关资源
        最近更新 更多