Events wxPython任务栏图标事件不';I don’我没有按预期工作

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

使用wxPython(我对它完全陌生),我基于wxPython演示代码创建了一个任务栏图标。 右键单击任务栏图标时,图标菜单打开。不过,我希望它做一些具体的左键单击以及

我已经尝试通过监听
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参数)