model.setItem()发出信号model.itemChanged()导致循环

时间:2015-07-09 13:02:39

标签: qt model pyqt signals qtableview

为了填充QTableView()我使用setItem(r, c, item)方法

table = QTableView()
model = QStandardItemModel()
table.setModel(model)
item = QStandardItem("some value")
model.setItem(r, c, item)

我用它来填充QTableView()从词典中获取的数据。 此外,如果我直接在QtableView()中手动更改项目,我会使用信号itemChanged()来调用执行某些操作的函数。

问题是,当从字典更新项目时,也会调用itemChanged()方法。所以它导致程序循环 虽然如果我使用model.appendRow([one , two, three])来填充表格,itemChanged()不会发出信号

有什么办法可以解决吗?

1 个答案:

答案 0 :(得分:0)

从GUI编辑项目数据时,请使用dataChanged()信号