wxPython系统托盘图标

2024-07-08 08:50:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我是一个白色的图标,背景是白色的。在

其次,图标有一个右键单击菜单,其中有“Show”和“Close”选项,但是由于未知原因,它们旁边都会显示“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)  

使用以下方法实现:

^{pr2}$

Tags: textselfcloseinitdefshowparent图标
1条回答
网友
1楼 · 发布于 2024-07-08 08:50:27

wxPython使用了一种叫做AcceleratorTable的东西来跟踪“热键”或“快捷键”或任何你想叫它们的东西。与定义和设置sizer的方法类似,可以定义和设置Acceleratorable,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")

相关问题 更多 >

    热门问题