Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt如何在QTreeView中单击时传递索引_Python_Python 3.x_Pyqt5 - Fatal编程技术网

Python PyQt如何在QTreeView中单击时传递索引

Python PyQt如何在QTreeView中单击时传递索引,python,python-3.x,pyqt5,Python,Python 3.x,Pyqt5,我有一个以树的形式包含数据的字典: 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': {}} 接下来,我为这本词典建立一个

我有一个以树的形式包含数据的字典:

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 level parent 1


我如何更改dict“tree”和代码,使树的每个元素都有自己的索引,当我单击时,我传递该记录的索引(在方法onSelectionChanged中获取该索引)

提供一个答案,我认为你的问题是什么还很不清楚。您正在创建一个
QtGui.QStandardItemModel
。因此,模型的每一项都已指定了索引。除此之外,您已经在对所选索引进行迭代。我似乎已经回答了你问题的方方面面。