选择TreeView中的哪个节点(PySide)?

时间:2017-06-08 04:26:54

标签: python pyside qtreeview

我有一个带有QTreeView的程序,我想在工具栏中禁用/启用某些操作,具体取决于选择了哪个节点,但我不知道如何获取所选节点。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

在下面的示例中,我将展示如何知道在QTreeView中选择了哪些项目,为此我们使用selectionChanged信号返回选定和取消选择的项目,然后迭代并获取QModelIndex,并通过此和我们获得的模型数据。

from PySide.QtGui import *
from PySide.QtCore import *

class Main(QTreeView):
    def __init__(self):
        QTreeView.__init__(self)
        model = QFileSystemModel()
        model.setRootPath(QDir.homePath())
        self.setModel(model)
        m = self.selectionModel()
        m.selectionChanged.connect(self.onSelectionChanged)

    def onSelectionChanged(self, selected, deselected):
        for index in selected.indexes():
            print(self.model().data(index))


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    w = Main()
    w.show()
    sys.exit(app.exec_())