gpt4 book ai didi

python - wxPython 系统托盘图标

转载 作者:行者123 更新时间:2023-11-28 19:27:12 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序的系统托盘中实现一个图标,但是我有两个问题。

首先,尽管我使用的图标是具有透明背景的 .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)

最佳答案

wxPython 使用一种称为 AcceleratorTable 的东西来跟踪“热键”或“快捷方式”或任何您喜欢的名称。与定义和设置 sizer 的方式类似,您可以定义和设置 AcceleratorTable,wxPython 将使用它。更多关于这里 http://www.blog.pythonlibrary.org/2010/12/02/wxpython-keyboard-shortcuts-accelerators/

此外,为了获得 Ctrl-Q 或 Ctrl-O 热键,您需要在文本中指定它们或将它们添加到快捷键表中。如果您将格式正确的文本添加到菜单项,wxPython 应该会识别“这是一个热键”并自动为您将其添加到快捷键表。

self.menu.Append(wx.ID_OPEN, "Show\tCtrl+O")  
self.menu.Append(wx.ID_EXIT, "Close\tCtrl+Q")

关于python - wxPython 系统托盘图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7329634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com