Domanda

Non sono riuscito a trovare alcun suggerimento su come creare un'icona della barra dei menu su OSX usando wx. Inizialmente pensavo che la classe wxTaskBarIcon avrebbe funzionato, ma in realtà crea un'icona sul Dock. Su Windows, wxTaskBarIcon crea un'icona Systray e un menu associato, e penso che su mac osx creerebbe un'icona della barra dei menu, credo di no.

È stato utile?

Soluzione

Devi impostare wxTaskBarIconType su STATUSITEM , non DOCK . Le API di Cocoa per questo sono NSStatusBar e NSStatusItem ; ecco il codice in wxWidgets che li chiama .

Altri suggerimenti

Questo post di Robin Dunn , il creatore di wxPython, spiega che wxPython non supporta ancora le icone della barra dei menu su Mac. Supportano solo il Dock.

A partire da wxPython 2.9.2.0 wx.TaskBarIcon ora verrà creata un'icona della barra dei menu anziché su OSX, purché si chiami SetIcon .

C'è un esempio su wiki.wxpython.org che mette un'icona nei menu di stato " " sezione (lato destro) della barra dei menu di macOS (ignora il titolo della pagina): https://wiki.wxpython.org/Custom%20Mac%20OsX% 20Dock% 20bar% 20Icon

Funziona per me con macOS High Sierra (10.13.3) con python 2.7.14 (installato usando la miniconda) con wxpython 3.0.0.0 osx-cacao (classico).

Allo stesso modo, funziona con python 3.6.4 e wxpython 4.0.1 osx-cacao (fenice); sono necessarie modifiche minori al codice:

  • devi importare wx.adv
  • wx.TaskBarIcon diventa wx.adv.TaskBarIcon
  • wx.IconFromBitmap diventa wx.Icon

Questo genera un'icona di stato / notifica / barra delle applicazioni anche su altre piattaforme.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top