как установить значок меню на Mac OS X с помощью wx

StackOverflow https://stackoverflow.com/questions/145894

  •  02-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

На 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 (классический).

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top