<div dir="ltr">Greetings,<div><br></div><div>Below is the code in question. Basically, I am adding an __iter__ property to QStandardItem. In PyQt4, this worked fine. However, in PyQt5, the text of the item no longer appears in the QTreeView. The item is there; you can select it. It just doesn't show.</div><div><br></div><div>PyQt5.QtGui.QStandardItem does not appear to natively have an __iter__ property, so not sure why this is having such an effect.</div><div><br></div><div>Other environment info:</div><div><ul><li>OS X 10.11.6</li><li>anaconda 1.5.1</li><li>Python 2.7.12</li><li>QT/PyQT5 versions: 5.6</li></ul></div><div>Thank you for your time,</div><div>t.</div><div><br></div><div><div>from PyQt5 import (Qt, QtCore, QtGui, QtWidgets)</div><div>from sip import SIP_VERSION</div><div>import sys</div><div><br></div><div>print('QT Version="{}"'.format(QtCore.QT_VERSION_STR))</div><div>print('PYQT Version="{}"'.format(Qt.PYQT_VERSION_STR))</div><div>print('sip Version="{}"'.format(SIP_VERSION))</div><div><br></div><div><br></div><div>class LayerItem(QtGui.QStandardItem):</div><div><br></div><div>    def __iter__(self):</div><div>        for row in range(self.rowCount()):</div><div>            yield self.child(row)</div><div><br></div><div><br></div><div>app = QtWidgets.QApplication([])</div><div><br></div><div>model = QtGui.QStandardItemModel()</div><div>li = LayerItem('Layer Item')</div><div>print('li text="{}"'.format(li.text()))</div><div>model.appendRow(li)</div><div>model.appendRow(QtGui.QStandardItem('Standard Item'))</div><div><br></div><div><br></div><div>tree = QtWidgets.QTreeView()</div><div>tree.setModel(model)</div><div><br></div><div>tree.show()</div><div><br></div><div>sys.exit(app.exec_())</div></div><div><br></div></div>