Python Qt';s absoluteFilePath()方法返回错误的路径
我正在尝试使用以下函数打印树视图中指向的文件路径:Python Qt';s absoluteFilePath()方法返回错误的路径,python,linux,qt,pyqt,Python,Linux,Qt,Pyqt,我正在尝试使用以下函数打印树视图中指向的文件路径: 1) 为treeView设置根索引:self.treeView.setRootIndex(self.model.setRootPath(“/some/unix/catalog”) 2) 设置单击的文件和打印名称的函数之间的连接: QtCore.QObject.connect(self.ui.treeView,QtCore.SIGNAL(“单击(QModelIndex)”),self.print\u路径) 3) 在以(QModelIndex)索引
1) 为treeView设置根索引:
self.treeView.setRootIndex(self.model.setRootPath(“/some/unix/catalog”)
2) 设置单击的文件和打印名称的函数之间的连接:
QtCore.QObject.connect(self.ui.treeView,QtCore.SIGNAL(“单击(QModelIndex)”),self.print\u路径)
3) 在以(QModelIndex)索引为参数的print_path函数内打印
打印QtCore.QFileInfo(index.data(0.toString()).absoluteFilePath()
我的问题是我得到:
/path/to/source/files/of/the/project/name of file.extension
而不是:
/path/to/pointed/file/nameoffile.extension
即使指向的文件位于子目录中,这些函数也只返回扩展名连接到源文件路径的文件名。 我做错了什么?在
QtCore.QFileInfo(index.data(0).toString())
您正在使用本地路径创建一个新的FileInfo实例。fileinfo无法知道该文件名位于哪个文件夹中,因此它使用默认文件夹。把它想象成
QtCore.QFileInfo("readme.txt")
fileInfo怎么知道您的意思是readme.txt位于/my/nice/files/文件夹中
您应该从以下位置获取文件信息:
QFileSystemModel::fileInfo
因此,在你的情况下:
self.model.fileInfo(index).absoluteFilePath()