Как отличить левый и правый клик с помощью QSystemTrayIcon
проблема
При запуске следующего кода PyQt5 в MacOS (Sierra 10.12.6)
self.tray_icon = QtWidgets.QSystemTrayIcon(QtGui.QIcon("icon/path"), self)
self.tray_icon.activated.connect(self.on_systray_activated)
[...]
def on_systray_activated(self, i_reason):
logging.debug("entered on_systray_activated. i_reason = " + str(i_reason))
мы получаем причину активации QSystemTrayIcon::Trigger
даже если щелкнуть правой кнопкой мыши
В других системах (например, XFCE) мы получаем QSystemTrayIcon::Context
когда пользователь щелкает правой кнопкой мыши
Вопрос
Как мы можем различить щелчок левой и правой кнопкой мыши на значке systray в MacOS?
1 ответ
Метод QApplication.mouseButtons можно использовать для получения текущего состояния кнопок мыши:
def on_systray_activated(self, i_reason):
buttons = QtWidgets.qApp.mouseButtons()
if buttons & QtCore.Qt.RightButton:
logging.debug('on_systray_activated: right-button')