PyQt4 - "RuntimeError: underlying C/C object has been deleted" -
i keep getting runtimeerror i'm not sure how fix. here's i'm trying accomplish. want update qtablewidget values dynamically i'm clicking on different items in qtreeview. on part, code works except when click on second item , need update qtablewidgt when run "runtimeerror: underlying c/c object has been deleted". here's snippet of code:
def buildtable( self ): ... 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
the compiler complains errors on line, "print tableitem.text()"
thx!
i believe issue binding callback qtablewidget item , making many many connections (bad). items can change. thus, can deleted making callback dead.
what want let itemchanged
signal tell item changed, moment happens.
self.table = qtgui.qtablewidget() ... # once...ever...on init of table object qtcore.qobject.connect( self.table, qtcore.signal('itemchanged(qtablewidgetitem*)'), self.updatevalues )
and in slot, receive item:
def updatevalues(self, tableitem): print '--------------------------------' print 'updating text property value!!!' print tableitem.text()
Comments
Post a Comment