python - 如何从功能 QSystemTrayIcon 向上下文菜单添加操作

标签 python qt pyside6 qsystemtrayicon

我曾尝试在 PySide6 文档中搜索有关 QMenu 和 QSystemTray 类的信息,但无法找到有关从函数向上下文菜单添加操作的任何信息。这是我尝试过的代码:

from PySide6.QtWidgets import QSystemTrayIcon, QMenu
from PySide6 import QtWidgets
from PySide6.QtGui import QIcon, QAction
import sys

class MyWidget(QtWidgets.QSystemTrayIcon):
    def __init__(self):
        super().__init__()
        self.trayIcon = QSystemTrayIcon()
        self.trayIcon.setIcon(QIcon("icon.png"))
        self.trayIcon.setVisible(True)
        self.menu = QMenu()
        self.quit = QAction("Quit")
        self.quit.triggered.connect(app.quit)
        self.menu.addAction(self.quit)
        self.menu.updatesEnabled()
        self.menu.setUpdatesEnabled(True)
        self.trayIcon.setContextMenu(self.menu)
        self.trayIcon.activated.connect(self.addMenuAction)
    def addMenuAction(self):
        self.menu.addAction(QAction("Action"))
        self.menu.update()
if __name__ == "__main__":
    app = QtWidgets.QApplication([])

    widget = MyWidget()
    widget.show()

    sys.exit(app.exec_())

最佳答案

问题是您创建的 QAction 没有所有权,因此它会立即被销毁,因为它是一个局部变量。有2个选项:

action = QAction("Action", self)
self.menu.addAction(action)
或者
action = self.menu.addAction("Action")

关于python - 如何从功能 QSystemTrayIcon 向上下文菜单添加操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67084768/

相关文章:

python - 如何在 PySide6 中使用 QT6 Dark Theme?

python - 如何在没有qrc系统的情况下在pyqt6中设置背景图像

python - 值错误 :invalid for int() with base 10: ''

python - 无法使用 Python requests lib POST 文件附件和数据参数

c++ - Qt5 Beta - 找不到 serviceframework.pro

python - 未能在qt快速应用程序中构建图形管道状态

python - 使用 BeautifulSoup 无法按预期解析 XML

python - Pandas 将数据框与学生成绩与历史分位数进行比较

c++ - Qt 是否支持虚拟纯插槽?

qt - 使 float 的 QDockWidget 无法获得焦点