Hi, I am having a similar bug indeed in sip-4.14.3 / PyQt-4.9.6 where QTreeWidgetItem forgets its Python state when created with a QTreeWidget().invisibleRootItem() as parent.
After importing * from PyQt4.QtCore and QtGui: >>> app=QApplication([]) >>> w=QTreeWidget() >>> class Item(QTreeWidgetItem): ... pass ... >>> i=Item(w.invisibleRootItem()) >>> i.value=123 >>> del i >>> w.topLevelItem(0) <PyQt4.QtGui.QTreeWidgetItem object at 0xb69ceadc> >>> w.topLevelItem(0).value Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'QTreeWidgetItem' object has no attribute 'value' But when I create Item with the treewidget itself as parent, it works: >>> w.clear() >>> i=Item(w) >>> del i >>> w.topLevelItem(0) <__main__.Item object at 0xb69ce614> And when I create an Item with a toplevel Item as parent, it also works: >>> j=Item(w.topLevelItem(0)) >>> w.topLevelItem(0).child(0) <__main__.Item object at 0xb69ceadc> >>> del j >>> w.topLevelItem(0).child(0) <__main__.Item object at 0xb69ceadc> >>> w.topLevelItem(0).child(0).value=123 >>> w.topLevelItem(0).child(0).value 123 >>> So the bug is only that when creating a QTreeWidgetItem (even if derived) with the QTreeWidget.invisibleRootItem() as parent, its Python counterpart is forgotten and a new wrapped object is created. Wilbert -- Wilbert Berendsen (http://www.wilbertberendsen.nl) _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt