使用wxPython(我对它完全陌生),我创建了一个基于wxPython演示代码的任务栏图标。 右键单击任务栏图标即可打开图标的菜单。不过,我希望它能够在左键单击时做一些特定的操作。wxPython任务栏图标事件无法按预期工作
我试图通过侦听EVT_TASKBAR_CLICK
事件,如下面的代码第三绑定线实现这一点:
class TrayIcon(wx.TaskBarIcon):
...
def __init__(self, frame):
...
self.Bind(wx.EVT_MENU, self.OnLoanUpdate, id=self.TBMENU_UPDATE)
self.Bind(wx.EVT_MENU, self.OnTaskBarClose, id=self.TBMENU_CLOSE)
self.Bind(wx.EVT_TASKBAR_CLICK, self.DoSomething())
...
def DoSomething(self):
print "do it"
class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(200, 100))
...
self.tbicon = TrayIcon(self)
self.Show(True)
...
但是,DoSomething()
方法在我的任务栏图标的初始化执行。它不会像我所期望的那样被点击左(或右)点击。实际上,即使我使用其他事件(如EVT_CLOSE
或EVT_MENU_HIGHLIGHT
),其行为也完全相同。
我在Windows 7下测试这个。 我在做什么错?
编辑:当我试图this code,并实现了在主窗口类的情况下,双击工作,但是当它在我的情况不,我仍然感到困惑。
是的,它的工作,确实忽略了其他两个Bind()方法中没有parens! (要完全修复它,我必须为我的DoSomething方法添加一个额外的evt参数) – Rabarberski 2010-06-24 15:03:14