如何在左键单击时在 QSystemTrayIcon 中显示上下文菜单
How to show context menu in QSystemTrayIcon on left click
我一直在浏览这个小部件的文档。我有一个工作图标和一个上下文菜单,但是我希望能够在有人左键单击时也显示上下文菜单。这可能吗?
编辑:
- 这用于 Windows 10.
当激活原因为QSystemTrayIcon.Trigger
时,您可以连接QSystemTrayIcon.activated
信号来调用QMenu.popup
。
import sys
from PySide2.QtWidgets import *
from PySide2.QtGui import *
class TrayIcon(QSystemTrayIcon):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.activated.connect(self.showMenuOnTrigger)
def showMenuOnTrigger(self, reason):
if reason == QSystemTrayIcon.Trigger:
self.contextMenu().popup(QCursor.pos())
if __name__ == '__main__':
app = QApplication(sys.argv)
tray = TrayIcon(QIcon('icon.png'))
menu = QMenu()
menu.addAction('Action 1')
menu.addAction('Action 2')
tray.setContextMenu(menu)
tray.show()
sys.exit(app.exec_())
我一直在浏览这个小部件的文档。我有一个工作图标和一个上下文菜单,但是我希望能够在有人左键单击时也显示上下文菜单。这可能吗?
编辑:
- 这用于 Windows 10.
当激活原因为QSystemTrayIcon.Trigger
时,您可以连接QSystemTrayIcon.activated
信号来调用QMenu.popup
。
import sys
from PySide2.QtWidgets import *
from PySide2.QtGui import *
class TrayIcon(QSystemTrayIcon):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.activated.connect(self.showMenuOnTrigger)
def showMenuOnTrigger(self, reason):
if reason == QSystemTrayIcon.Trigger:
self.contextMenu().popup(QCursor.pos())
if __name__ == '__main__':
app = QApplication(sys.argv)
tray = TrayIcon(QIcon('icon.png'))
menu = QMenu()
menu.addAction('Action 1')
menu.addAction('Action 2')
tray.setContextMenu(menu)
tray.show()
sys.exit(app.exec_())