我有一个带有 setData 的 QtGui.QStandardItemModel 的子类,如下所示:
def setData(self, index, value, role):
if role == QtCore.Qt.EditRole:
old = self.itemFromIndex(index).text()
new = value
MAIN.changeItem(old,new,index)
return QtGui.QStandardItemModel.setData(self, index, value, role)
在 MAIN.changeItem 中,我取“旧”值并将其替换为数据库中的“新”值,然后使用返回值设置数据。最后我刷新模型以显示结果。像这样:
def changeItem(self,old,new,index):
dosomethin(old,newindex) # adjust the database and model
self.tableUpdate() # refresh/redraw the table
但是我要退出-1073741819,但前提是我一个接一个地执行它们。如果我不刷新模型(注释掉 self.tableUpdate()),而是执行其他可以正常刷新它的操作(例如添加新项目或更改选项卡),则不会引发错误。知道为什么会这样吗?