2013-04-28 74 views
0

我运行简单的wxpython应用程序驻留在任务栏/系统托盘区域,当用户单击它时显示弹出式菜单。工作正常,除了我需要显示弹出菜单时,用户单击任务栏图标(mac)上的鼠标右键。在mac上,如何检测鼠标右键单击wxpython应用程序的taskbaricon

绑定右击喜欢:

self.Bind(wx.EVT_TASKBAR_RIGHT_UP, self.onRight) 

没有做任何事情。

+0

你是指菜单栏还是Dock? Mac上没有与系统托盘直接等价的东西。 – Cathy 2013-04-30 03:55:42

+0

我的意思是使用wx.TaskBarIcon类创建的菜单栏。绑定右键点击如下: self.Bind(wx.EVT_TASKBAR_RIGHT_UP,self.onRight) 不做任何事情。 – 2013-04-30 07:33:18

+0

看来wxPython已经知道没有点击右键点击事件的问题。 [查看此链接](http://trac.wxwidgets.org/ticket/14646) – 2013-11-15 07:19:04

回答

0

您不需要直接绑定事件。 wx.TaskBarIcon有一个方法来添加一个右键菜单,although the wxPython docs are a bit light-on,wxWigets docs解释得很好。

如果C++文档让您感到困惑,请查看任务栏图标上出色的Mouse vs Python教程。

ETA

注意,默认情况wxPython的让你在Mac上wxWigets菜单栏项目,其中据我所知,only captures a left-click event(线353)。

wx.TaskBarIcon(wx.TBI_DOCK) 

这可以捕捉左侧和右侧点击:如果您构建您的项目通过正确的魔法的话,你可以得到一个停靠任务栏中的项目。

+0

在Windows7上,右键菜单可以正常工作,无需绑定任何事件。在Mac上,默认情况下左键点击菜单工作,我也需要右键点击相同的菜单。我无法找到任何解释如何在MacOS上右键单击显示任务栏菜单的文档 – 2013-05-01 06:23:17

+0

再次查看该鼠标与Python教程。第二个代码示例包含一个'MailIcon'类,该类继承了wx.TaskBarIcon并覆盖了CreatePopupMenu。 – Cathy 2013-05-01 23:44:18

相关问题