使用wxPython(我是新手),我已经基于wxPython演示代码创建了一个任务栏图标。 右键单击任务栏图标即可打开图标菜单。但是我希望它能够在左键单击时执行特定的操作。
我尝试通过监听EVT_TASKBAR_CLICK
事件来实现此功能,如以下代码中的第3个Bind行:
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并在MainWindow类中实现该事件时,双击工作,但在我的情况下,我仍然感到困惑。
答案 0 :(得分:2)
尝试删除()
中的self.DoSomething()
。使用parens,您将wx.EVT_TASKBAR_CLICK
绑定到任何DoSomething()返回,在本例中为None。
答案 1 :(得分:0)
在此处查看:http://docs.wxwidgets.org/stable/wx_wxtaskbaricon.html
您是否尝试过LEFT_UP和LEFT_DOWN而不是CLICK?