У меня есть QTableView, показывающий дочерние элементы определенного QModelIndex в моей модели (которая имеет иерархические данные, которые таблица, конечно, не может показать).Я хочу иметь возможность перебирать все элементы в табличном представлении, т.е. все дочерние элементы rootIndex.Как я могу эффективно сделать это?У меня есть ссылка на родительский индекс с помощью table.rootIndex (), однако я не вижу способа итерации по дочерним элементам индекса без итерации по всей модели в целом, что кажется неправильным.
Это задание для QSortFilterProxyModel для установки подмножества модели в таблице?Имеет ли смысл то, что я только что сказал?!
Вот быстрый пример для запуска и запуска
class Sample(QtGui.QDialog):
def __init__(self):
super(Sample, self).__init__()
model = QtGui.QStandardItemModel(self)
parent_index1 = QtGui.QStandardItemModel("Parent1")
model.appendRow(parent_index1)
parent_index2 = QtGui.QStandardItemModel("Parent2")
model.appendRow(parent_index2)
one = QtGui.QStandardItem("One")
two = QtGui.QStandardItem("Two")
three = QtGui.QStandardItem("Three")
parent_index1.appendRows([one, two, three])
table = QtGui.QTableView(self)
table.setModel(model)
table.setRootIndex(model.index(0,0))
# okay now how would I loop over all 'visible' rows in the table? (children of parent_index1)