Как установить значок меню на Mac OSX с помощью WX - PullRequest
5 голосов
/ 28 сентября 2008

Я не смог найти никаких указателей на то, как создать иконку меню в OSX с помощью wx. Первоначально я думал, что класс wxTaskBarIcon подойдет, но на самом деле он создает значок в Dock. В Windows wxTaskBarIcon создает значок Systray и связанное с ним меню, и я думаю, что в Mac OSX это создаст значок меню, я думаю, нет.

Ответы [ 4 ]

4 голосов
/ 28 сентября 2008

Вы должны установить wxTaskBarIconType на STATUSITEM, а не DOCK. API-интерфейсы Cocoa для этого: NSStatusBar и NSStatusItem; вот код в wxWidgets, который вызывает их .

2 голосов
/ 25 июня 2010

Этот пост Робина Данна, создателя wxPython, объясняет, что wxPython пока не поддерживает значки меню на Mac. Они поддерживают только док.

1 голос
/ 15 сентября 2014

Начиная с wxPython 2.9.2.0 wx.TaskBarIcon теперь будет создавать иконку меню вместо OSX, если вы вызываете SetIcon.

0 голосов
/ 15 марта 2018

На wiki.wxpython.org есть пример, который помещает значок в раздел «меню состояния» (правая сторона) строки меню macOS (игнорируйте заголовок страницы): https://wiki.wxpython.org/Custom%20Mac%20OsX%20Dock%20Bar%20Icon

Это работает для меня с macOS High Sierra (10.13.3) под управлением python 2.7.14 (установлен с использованием miniconda) с wxpython 3.0.0.0 osx-cocoa (classic).

Аналогично, он работает с python 3.6.4 и wxpython 4.0.1 osx-cocoa (phoenix); требуются незначительные изменения кода:

  • вы должны импортировать wx.adv
  • wx.TaskBarIcon становится wx.adv.TaskBarIcon
  • wx.IconFromBitmap становится wx.Icon

Создает значок состояния / уведомления / типа панели задач и на других платформах.

...