J'essaie d'implémenter une icône dans la zone de notification pour mon application, mais j'ai deux problèmes. D'abord, bien que l'icône que j'utilise soit un .png avec un fond transparent, l'icône a un fond blanc laid. Deuxièmement, l'icône a un menu clic droit avec les options "Afficher" et "Fermer" mais pour des raisons inconnues, les deux disent "Ctrl-Q" à côté d'eux. Non seulement je ne l'ai pas spécifié, mais le combo de raccourcis ne fait rien.wxPython Icône de la barre d'état système
Voici le code que j'utilise. Il est presque directement soulevé de la documentation:
class SysTray(wx.TaskBarIcon):
def __init__(self, parent, icon, text):
wx.TaskBarIcon.__init__(self)
self.parentApp = parent
self.SetIcon(icon, text)
self.CreateMenu()
def CreateMenu(self):
self.Bind(wx.EVT_TASKBAR_RIGHT_UP, self.ShowMenu)
self.menu=wx.Menu()
self.menu.Append(wx.ID_OPEN, "Show")
self.menu.Append(wx.ID_EXIT, "Close")
def ShowMenu(self,event):
self.PopupMenu(self.menu)
Ce qui est mis en œuvre à l'aide:
self.trayicon = SysTray(self, wx.Icon(TRAY_ICON, wx.BITMAP_TYPE_PNG), TRAY_TOOLTIP)
self.trayicon.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT)
self.trayicon.Bind(wx.EVT_MENU, self.OnShow, id=wx.ID_OPEN)
Le passage de fichiers PNG à XPM a résolu le problème de transparence. Cependant, je vois encore CTRL-Q, mais cela peut être dû à mon environnement de bureau. Je l'ai testé sur Arch et Gentoo en LXDE. Je vais démarrer une VM et essayer avec un environnement différent. –
Ma conjecture est que c'est probablement wx.ID_OPEN et wx.ID_EXIT, mais j'attendrais Ctrl + O et Ctrl + Q. – Fenikso