Python 如何从函数QSystemTrayIcon向上下文菜单添加操作
我曾尝试在PySide6文档中搜索有关QMenu和QSystemTray类的信息,但找不到有关从函数向上下文菜单添加操作的任何信息。以下是我尝试过的代码: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.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”)