Events wxPython任务栏图标事件不';I don’我没有按预期工作
使用wxPython(我对它完全陌生),我基于wxPython演示代码创建了一个任务栏图标。 右键单击任务栏图标时,图标菜单打开。不过,我希望它做一些具体的左键单击以及 我已经尝试通过监听Events wxPython任务栏图标事件不';I don’我没有按预期工作,events,wxpython,taskbar,Events,Wxpython,Taskbar,使用wxPython(我对它完全陌生),我基于wxPython演示代码创建了一个任务栏图标。 右键单击任务栏图标时,图标菜单打开。不过,我希望它做一些具体的左键单击以及 我已经尝试通过监听EVT\u taskar\u CLICK事件来实现这一点,如以下代码中的第三个绑定行所示: class TrayIcon(wx.TaskBarIcon): ... def __init__(self, frame): ... self.Bind(wx.EVT_ME
EVT\u taskar\u 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\u CLOSE
或EVT\u MENU\u HIGHLIGHT
),行为也完全相同
我正在Windows7下测试这个。
我做错了什么
编辑:当我尝试并在MainWindow类中实现该事件时,双击成功了,但在我的情况下,双击失败了,我仍然感到困惑。看这里:
您是否尝试过左上左下而不是单击?尝试删除
self.DoSomething()
中的()
。使用parens,您将wx.EVT\u task\u CLICK
绑定到任何DoSomething()返回的值,在本例中,该值为零。是的,这很有效,实际上忽略了其他两个Bind()方法中没有parens!(为了完全修复它,我还必须在剂量测量方法中添加一个额外的evt参数)