На Mac, как обнаружить щелчок правой кнопкой мыши на панели задач приложения wxpython

У меня запущено простое приложение wxpython, расположенное в области задач / области задач, которое показывает всплывающее меню, когда пользователь нажимает на него. Работает нормально, за исключением того, что мне нужно показывать всплывающее меню, когда пользователь нажимает правую кнопку мыши на значке панели задач (mac).

Привязка правой кнопкой мыши, например:

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

ничего не делай.

2 ответа

Это известная проблема wxwidget 2.9.4, когда событие не вызывается при щелчке правой кнопкой мыши на панели задач. http://trac.wxwidgets.org/ticket/14646

Вам не нужно связывать событие напрямую. В wx. TaskBarIcon есть метод для добавления меню, вызываемого правой кнопкой мыши, хотя документы wxPython немного освещены, документы wxWigets объясняют это довольно хорошо.

Если документация C++ вас смущает, взгляните на превосходное руководство Mouse vs Python по значкам панели задач.

ЭТА:

Обратите внимание, что по умолчанию wxPython предоставляет вам элемент меню wxWigets на Mac, который, насколько я могу судить, захватывает только событие левого щелчка (строка 353). Вы можете получить элемент панели задач в доке, если создаете свой элемент, передавая правильные магические слова:

wx.TaskBarIcon(wx.TBI_DOCK)

Это может захватить левый и правый клики.

Другие вопросы по тегам