Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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
PythonQT,QMenu更新QActions_Python_Qt_Qmenu_Qaction_Pythonqt - Fatal编程技术网

PythonQT,QMenu更新QActions

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

我有以下代码,在我更新UTIL两次数据之前,这些代码运行良好。Utils.\u数据是字典

类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替换为只打印_数据的简单函数,仅在更新字典之前起作用。我是否应该尝试在没有数据的情况下进行调试?