Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Qt';s absoluteFilePath()方法返回错误的路径_Python_Linux_Qt_Pyqt - Fatal编程技术网

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()