我有一个带有QTreeView的程序,我想在工具栏中禁用/启用某些操作,具体取决于选择了哪个节点,但我不知道如何获取所选节点。有人可以帮忙吗?
答案 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_())