我不断收到此运行时错误,我不知道如何修复。这就是我想要实现的目标。当我单击 QTreeView 中的不同项目时,我想用值动态更新此 QTableWidget。在大多数情况下,我的代码可以工作,除非我单击第二个项目并且我需要更新我的 QTableWidgt,即当我遇到此“RuntimeError:底层 C/C 对象已被删除”时。这是我的代码片段:
def BuildTable( self ):
...
for label in listOfLabels :
attr = self.refAttr[label]
self.table.setItem(row, 0, QtGui.QTableWidgetItem( label ) )
tableItem = QtGui.QTableWidgetItem( str(attr.GetValue()) )
self.table.setItem(row, 1, tableItem )
someFunc = functools.partial( self.UpdateValues, tableItem, label )
QtCore.QObject.connect(self.table, QtCore.SIGNAL('itemChanged(QTableWidgetItem*)'), someFunc)
def UpdateValues(self, tableItem, label):
print '--------------------------------'
print 'UPDATING TEXT PROPERTY VALUE!!!'
print tableItem.text()
print label
编译器抱怨“print tableItem.text()”行上的错误
Thx!
我相信问题在于您正在将回调与 QTableWidget 项绑定并建立许多连接(不好)。项目可能会改变。因此,它们可以被删除,从而使您的回调失效。
你想要的只是让itemChanged
信号在发生变化时告诉您什么项目发生了变化。
self.table = QtGui.QTableWidget()
...
# only do this once...ever...on the init of the table object
QtCore.QObject.connect(
self.table,
QtCore.SIGNAL('itemChanged(QTableWidgetItem*)'),
self.UpdateValues
)
然后在你的 SLOT 中,它将收到该物品:
def UpdateValues(self, tableItem):
print '--------------------------------'
print 'UPDATING TEXT PROPERTY VALUE!!!'
print tableItem.text()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)