【发布时间】:2011-11-11 21:05:41
【问题描述】:
我正在尝试在系统托盘中为我的应用程序实现一个图标,但是我有两个问题。
首先,虽然我使用的图标是具有透明背景的 .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)
【问题讨论】:
-
从 PNG 文件切换到 XPM 文件修复了透明度问题。但是我仍然看到 CTRL-Q,但这可能是因为我的桌面环境。我目前已经在运行 LXDE 的 Arch 和 Gentoo 上对其进行了测试。我将启动一个 VM 并尝试使用不同的环境。
-
我的猜测是它可能是 wx.ID_OPEN 和 wx.ID_EXIT,但我希望 Ctrl+O 和 Ctrl+Q。