选择了 TreeView 中的哪个节点(PySide)?
Which node from TreeView is selected (PySide)?
我有一个带有 QTreeView 的程序,我想 disable/enable 根据选择的节点在工具栏中执行一些操作,但我不知道如何获取选定的节点。有人可以帮忙吗?
在下面的示例中,我展示了如何知道在 QTreeView 中选择了哪些项目,为此我们使用 selectionChanged 信号,returns 选中和取消选择的项目,然后迭代并获得 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_())
我有一个带有 QTreeView 的程序,我想 disable/enable 根据选择的节点在工具栏中执行一些操作,但我不知道如何获取选定的节点。有人可以帮忙吗?
在下面的示例中,我展示了如何知道在 QTreeView 中选择了哪些项目,为此我们使用 selectionChanged 信号,returns 选中和取消选择的项目,然后迭代并获得 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_())