У меня есть словарь с данными в виде дерева:
tree = {'parent 1': {'child 1 - 1': {'child 1 - 1 - 1': {'child 4 levl parent 1': {}}}, 'child 1 - 2': {'children 2- 1': {}}, 'child 1- 3': {}}, 'parent 2': {'parent 2- 1 - chil': {}}, 'parent 3': {}, 'parent 4': {}}
Далее я строю список для этого словаря:
def treeRubrics(self):
self.treeList = QtWidgets.QTreeView()
self.treeList.setObjectName("treeList")
self.treeList.setMinimumSize(QtCore.QSize(200, 0))
self.treeList.setMaximumSize(QtCore.QSize(200, 16777215))
self.gridLayout.addWidget(self.treeList, 3, 0, 1, 1)
model = QtGui.QStandardItemModel()
self.populateTree(self.tree, model.invisibleRootItem())
self.treeList.setModel(model)
model.setHeaderData(0, QtCore.Qt.Horizontal, 'Records tree')
self.treeList.expandAll()
self.treeList.selectionModel().selectionChanged.connect(self.onSelectionChanged)
__sortingEnabled = self.treeList.isSortingEnabled()
self.treeList.setSortingEnabled(__sortingEnabled)
Я обрабатываю щелчок мыши наэлемент из списка:
def onSelectionChanged(self, *args):
for sel in self.treeList.selectedIndexes():
val = "/"+sel.data()
while sel.parent().isValid():
sel = sel.parent()
val = "/" + sel.data()+ val
Но вот так я получаю только список выбранных имен, например: /parent 1/child 1 - 1/child 1 - 1 - 1/child 4 levl parent 1
Как мне изменить слово "дерево"и код, чтобы каждый элемент дерева имел свой собственный индекс, и когда я нажимаю, я передаю индекс этой записи (Получить этот индекс в методе onSelectionChanged)?