PythonQT,QMenu更新QActions
我有以下代码,在我更新UTIL两次数据之前,这些代码运行良好。Utils.\u数据是字典PythonQT,QMenu更新QActions,python,qt,qmenu,qaction,pythonqt,Python,Qt,Qmenu,Qaction,Pythonqt,我有以下代码,在我更新UTIL两次数据之前,这些代码运行良好。Utils.\u数据是字典 类SystemTrayIcon(qtwidts.QSystemTrayIcon): 定义初始化(自我、图标、父项=无): 超级(SystemTrayIcon,self)。\uuuuu初始化\uuuuuuu(父级) self.parent=parent qtwidts.QSystemTrayIcon.\uuuuu init\uuuuuu(self、icon、self.parent) self.menu=qtw
类SystemTrayIcon(qtwidts.QSystemTrayIcon):
定义初始化(自我、图标、父项=无):
超级(SystemTrayIcon,self)。\uuuuu初始化\uuuuuuu(父级)
self.parent=parent
qtwidts.QSystemTrayIcon.\uuuuu init\uuuuuu(self、icon、self.parent)
self.menu=qtwidts.QMenu(父项)
self.actions={}
self.Update()
def更新(自我):
self.menu.clear()
self.actions.clear()
对于输入UTIL.\u数据:
self.actions[key]=self.menu.addAction(key)
self.actions[key].triggered.connect(部分(utils.copy,key))
self.setContextMenu(self.menu)
但是,如果我在编辑utils.\u数据(第二次、第三次等)后调用self.Update(),则QActions存在,但不执行任何操作
如何使用QActions更新QMenu
下一步是Utils.copy:
def副本(标识器):
尝试:
剪贴板。复制(_数据[identificator])
返回0
除:
引发异常('无法复制到剪贴板')
我像_DATA=load()一样更新,其中load()读取特定文件并将其转换为dict
\u数据[file.readline()]=一些字符串
更新数据效果很好,甚至我的QMenu中的qaction更新效果也很好,但是它们的触发器什么都不起作用 尝试通过添加一个非常简单的触发器函数来进行调试,该函数将打印它已被调用,并查看发生了什么。@ababak触发器也不起任何作用,我将utils.copy替换为只打印_数据的简单函数,仅在更新字典之前起作用。我使用该dict与否有关系吗?我是否应该尝试在没有_数据的情况下进行调试?尝试通过添加一个非常简单的触发器函数来进行调试,该函数将打印它已被调用,并查看发生了什么。@abababak触发器也不起作用,我将utils.copy替换为只打印_数据的简单函数,仅在更新字典之前起作用。我是否应该尝试在没有数据的情况下进行调试?