Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从函数QSystemTrayIcon向上下文菜单添加操作_Python_Qt_Pyside6_Qsystemtrayicon - Fatal编程技术网

Python 如何从函数QSystemTrayIcon向上下文菜单添加操作

Python 如何从函数QSystemTrayIcon向上下文菜单添加操作,python,qt,pyside6,qsystemtrayicon,Python,Qt,Pyside6,Qsystemtrayicon,我曾尝试在PySide6文档中搜索有关QMenu和QSystemTray类的信息,但找不到有关从函数向上下文菜单添加操作的任何信息。以下是我尝试过的代码: 从PySide6.qtwidts导入QSystemTrayIcon,QMenu 从PySide6导入QtWidgets 从PySide6.QtGui导入QIcon、QAction 导入系统 类MyWidget(QtWidgets.QSystemTrayIcon): 定义初始化(自): super()。\uuuu init\uuuuu() se

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

从PySide6.qtwidts导入QSystemTrayIcon,QMenu
从PySide6导入QtWidgets
从PySide6.QtGui导入QIcon、QAction
导入系统
类MyWidget(QtWidgets.QSystemTrayIcon):
定义初始化(自):
super()。\uuuu init\uuuuu()
self.trayIcon=QSystemTrayIcon()
self.trayIcon.setIcon(QIcon(“icon.png”))
self.trayIcon.setVisible(真)
self.menu=QMenu()
self.quit=QAction(“退出”)
self.quit.triggered.connect(app.quit)
self.menu.addAction(self.quit)
self.menu.updateEnabled()
self.menu.setUpdatesEnabled(True)
self.trayIcon.setContextMenu(self.menu)
self.trayIcon.activated.connect(self.addMenuAction)
def添加菜单操作(自身):
self.menu.addAction(QAction(“Action”))
self.menu.update()
如果名称=“\uuuuu main\uuuuuuuu”:
app=QtWidgets.QApplication([])
widget=MyWidget()
widget.show()
sys.exit(app.exec_())

问题在于您创建的QAction没有所有权,因此它将立即被销毁,因为它是一个局部变量。有两种选择:

action=QAction(“action”,self)
self.menu.addAction(操作)

action=self.menu.addAction(“action”)