Pergunta

Não conseguimos encontrar dicas sobre como criar um ícone de menu no OSX usando wx. Eu pensava que a classe wxTaskBarIcon faria, mas ele realmente cria um ícone no Dock. No Windows, wxTaskBarIcon cria um ícone Systray e menu associado, e eu acho que no Mac OSX seria criar um ícone de menu, acho que não.

Foi útil?

Solução

Você tem que definir wxTaskBarIconType para STATUSITEM, não DOCK. As APIs de cacau para isso são NSStatusBar e NSStatusItem; aqui está o código em wxWidgets que as chamadas para eles .

Outras dicas

Este mensagem por Robin Dunn , o criador do wxPython, explica que wxPython não suporta menubar ícones no mac ainda. Eles só apoiar o Dock.

A partir de wxPython 2.9.2.0 wx.TaskBarIcon irá criar um ícone de menu agora, em vez de OSX, desde que você chama SetIcon.

Há um exemplo na wiki.wxpython.org que coloca um ícone na seção "menus status" (lado direito mão) da barra de menu MacOS (ignore o título da página): https://wiki.wxpython.org/Custom%20Mac%20OsX% 20Dock% 20bar% 20Icon

Ele funciona para mim com o MacOS High Sierra (10.13.3) rodando python 2.7.14 (instalado usando miniconda) com wxpython 3.0.0.0 OSX-cacau (clássico).

Da mesma forma, ele funciona com python 3.6.4 e 4.0.1 wxpython OSX-cacau (Phoenix); Código pequenas alterações necessárias:

  • você deve importar wx.adv
  • wx.TaskBarIcon se torna wx.adv.TaskBarIcon
  • wx.IconFromBitmap se torna wx.Icon

Isso gera um ícone de status / notificação / tipo barra de tarefas em outras plataformas também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top