python - 如何在左键单击时在 QSystemTrayIcon 中显示上下文菜单
问题描述
我一直在查看此小部件的文档。我有一个工作图标和一个上下文菜单,但是我希望能够在有人左键单击时显示上下文菜单。这可能吗?
编辑:
- 这适用于 Windows 10。
解决方案
当激活原因为 时,您可以将QSystemTrayIcon.activated
信号连接到呼叫。QMenu.popup
QSystemTrayIcon.Trigger
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_())
推荐阅读
- java - 如何使用一个事务对所有数据库调用进行集成测试并在之后回滚?
- python - 如何将一行添加到 groupby 组中,并在每个新插入的行中更改一个值?
- php - PHP网站从本地主机更改域名不起作用
- php - WP Pagenavi - 分页在第三页上不起作用
- reactjs - 来自浏览器扩展弹出窗口的网络调用
- node.js - 在没有数据库的服务器nodejs中存储固定数据可以吗?
- sql - Android开发室SQL查询
- tensorflow - Tensorflow:将 [N,H,W,C] 重塑为 [N*C,H,W,1] 以进行每个通道的卷积
- ios - Swift:self.window?.rootViewController 在 AppDelegate 中不起作用
- kubernetes - 无效的客户端密码 - Velero