获取当前选中的 QTreeView 项的文本和索引

Get the text and index of the current selected QTreeView item

我想知道如何 return QTreeView 中所选项目的文本值和索引。我尝试使用:

self.TreeView.selectedIndexes()

但是 return 是一个 QModelIndex。我不确定如何将其转换为整数值。谷歌搜索,我也没有真正找到任何关于获取文本值的信息。有什么想法吗?

抱歉,如果这是一个基础知识问题。我是 python 的新手,并且是自学的。在 java 中,大多数对象都可以进行转换,但我不太确定在 Python 中如何使用 QObjects。

我目前正在使用 Python 3.6 和 PyQt5

答案取决于模型,但我认为您使用的是标准 Qt 模型,所以解决方案是使用 Qt::DisplayRole 角色:

for ix in self.TreeView.selectedIndexes():
    text = ix.data(Qt.DisplayRole) # or ix.data()
    print(text)

对于QModelIndex,可以使用方法row()和column()来获取行索引和列索引。也许这就是您所指的整数 'index'。

for ix in self.TreeView.selectedIndexes():
    text = ix.data(Qt.DisplayRole) # or ix.data()
    print(text)
    row_index = ix.row()
    print(column_index)
    column_index = ix.row()
    print(column_index)

可以参考这个https://doc.qt.io/qt-5/qmodelindex.html