Pregunta

No pude encontrar ningún indicador sobre cómo crear un icono de barra de menú en OSX usando wx. Originalmente pensé que la clase wxTaskBarIcon haría, pero en realidad crea un icono en el Dock. En Windows, wxTaskBarIcon crea un icono de Systray y un menú asociado, y creo que en mac osx crearía un icono de barra de menú, supongo que no.

¿Fue útil?

Solución

Debe configurar wxTaskBarIconType en STATUSITEM , no DOCK . Las API de Cocoa para esto son NSStatusBar y NSStatusItem ; aquí está el código en wxWidgets que les llama .

Otros consejos

Esta publicación de Robin Dunn , el creador de wxPython, explica que wxPython aún no admite iconos de barra de menú en mac. Solo soportan el Dock.

A partir de wxPython 2.9.2.0 wx.TaskBarIcon creará un icono de barra de menú ahora en su lugar en OSX, siempre que llame a SetIcon .

Hay un ejemplo en wiki.wxpython.org que pone un icono en los menús de estado " " sección (lado derecho) de la barra de menú de macOS (ignore el título de la página): https://wiki.wxpython.org/Custom%20Mac%20OsX% 20Dock% 20Bar% 20Icon

Me funciona con macOS High Sierra (10.13.3) ejecutando python 2.7.14 (instalado usando miniconda) con wxpython 3.0.0.0 osx-cacao (clásico).

De manera similar, funciona con python 3.6.4 y wxpython 4.0.1 osx-cocoa (phoenix); se requieren cambios menores en el código:

  • debe importar wx.adv
  • wx.TaskBarIcon se convierte en wx.adv.TaskBarIcon
  • wx.IconFromBitmap se convierte en wx.Icon

Esto también genera un ícono de estado / notificación / barra de tareas en otras plataformas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top