PyQt Как передать индекс по клику в QTreeView - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть словарь с данными в виде дерева:

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)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...