Я пытаюсь реализовать значок в системном трее для своего приложения, но у меня есть две проблемы.
Во-первых, хотя значок, который я использую, имеет формат .png с прозрачным фоном, у значка уродливый белый фон.
Во-вторых, значок имеет контекстное меню с параметрами «Показать» и «Закрыть», однако по неизвестным причинам рядом с ними написано «Ctrl - Q». Я не только не указал это, но и комбинация горячих клавиш ничего не делает.
Вот код, который я использую. Это почти напрямую взято из документации:
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)
Что реализуется с помощью:
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)