我正在设计一个我想在后台运行的应用程序。不需要任何用户交互,所以我希望应用程序以不可见的方式运行,但系统托盘图标除外。我希望该图标有一个菜单,可以在记事本中打开配置/帮助文件。有人可以指出我正确的方向或提供一个例子吗?
请您参考如下方法:
您可能可以更干净地完成此操作,但我前一段时间使用了一些示例,我能够为自己创建一个类来处理任务栏图标的基本构造。
任务栏图标.py
import wx
ID_SHOW_OPTION = wx.NewId()
ID_EDIT_OPTION = wx.NewId()
class Icon(wx.TaskBarIcon):
def __init__(self, parent, icon, tooltip):
wx.TaskBarIcon.__init__(self)
self.SetIcon(icon, tooltip)
self.parent = parent
self.Bind(wx.EVT_TASKBAR_LEFT_DCLICK, self.OnLeftDClick)
self.CreateMenu()
def CreateMenu(self):
self.Bind(wx.EVT_TASKBAR_RIGHT_UP, self.OnPopup)
self.menu = wx.Menu()
self.menu.Append(ID_SHOW_OPTION, '&Show Option 1')
self.menu.Append(ID_EDIT_OPTION, '&Edit Option 2')
self.menu.AppendSeparator()
self.menu.Append(wx.ID_EXIT, 'E&xit')
def OnPopup(self, event):
self.PopupMenu(self.menu)
def OnLeftDClick(self, event):
if self.parent.IsIconized():
self.parent.Iconize(False)
if not self.parent.IsShown():
self.parent.Show(True)
self.parent.Raise()
在您的框架的 init() 中,添加以下两行:
self.TrayIcon = tbi.Icon(self, wx.Icon("C:\\YourIcon.png", wx.BITMAP_TYPE_PNG), "ToolTip Help Text Here")
self.Bind(wx.EVT_ICONIZE, self.OnIconify)
现在只需将此功能添加到您的框架中,您就应该设置好了:
def OnIconify(self, event):
self.Hide()
请记住根据您的需要编辑 Icon 类中的项目。
