【发布时间】:2017-10-01 23:23:15
【问题描述】:
我对 QFileSystemModel.index 有疑问
当我通过单击鼠标从树视图中选择文件或文件夹时,代码会打印两次选择的项目。
这是我遇到问题的代码部分:
import sys
import os
import sip
sip.setapi('QVariant',2)
.....
.....
self.pathRoot = QtCore.QDir.rootPath()
self.model = QtGui.QFileSystemModel(self)
self.model.setRootPath(self.pathRoot)
self.fsindex = self.model.setRootPath(self.model.myComputer())
self.treeView.setModel(self.model)
self.treeView.setRootIndex(self.fsindex)
self.treeView.clicked.connect(self.on_treeView_clicked)
self.treeView.setColumnHidden(3, True)
self.treeView.setColumnHidden(2, True)
self.treeView.setColumnWidth(0, 320)
self.treeView.setColumnWidth(1, 30)
self.treeView.resizeColumnToContents(True)
@QtCore.pyqtSlot(QtCore.QModelIndex)
def on_treeView_clicked(self, index):
indexItem = self.model.index(index.row(), 0, index.parent())
filePath = self.model.filePath(indexItem)
print filePath
【问题讨论】:
-
您的代码是正确的,我无法重现您的问题。
-
谢谢;问题仍然存在; print filePath 每次都给我两次相同的名字;和组合框中的重复项
-
哪个组合框?
-
没有这个问题,因为你不使用双击。
-
我再次检查,问题来自 qt 设计师;如果我将 qtreeview 放在小部件或 QVBoxlayout 中,我遇到了这个问题!
标签: python-2.7 pyqt4 qtreeview qfilesystemmodel