我在QTreeView中有多个项目。获取当前选中的项目在QTreeView
class Branch(QStandardItem):
def __init__(self, label, uri = None):
QStandardItem.__init__(self, label)
self.uri = uri
这是我的实际树:使用这个类生成的每个项目
class FileTree(QTreeView):
def __init__(self):
QTreeView.__init__(self)
def keyPressEvent(self, event):
if event.key() == Qt.Key_Space or event.key() == Qt.Key_Return:
crawler = self.selectedIndexes()[0].model().item(self.selectedIndexes()[0].row())
print(crawler.uri)
QTreeView.keyPressEvent(self, event)
正如你所看到的,我对于如何从选定得到URI变量有点不确定项目。我发现selectedIndexes()
返回一个模型,而不是项目本身。我不知道如何从一个到另一个。尝试使用self.selectedIndexes()[0].row()
获得物品编号在黑暗中有一些镜头,但它似乎忽略了树中的各个分支(例如,它会给我一个0
作为分支中的第一行,但赢得了'不要告诉我任何有关它的分支)。
从QTreeView中获取所选项目的正确方法是什么?还是有更好的方法来检测空格键或返回键被击中,这将使这更容易? Qt严重缺乏Python文档,因此很难知道我是否以一种合理的方式做事。
真棒 - 这正是我一直在寻找。这是我在Qt中做过的第一件事。感谢您花时间解释它。 – ashground