Qt的absoluteFilePath()方法返回错误的路径

时间:2011-04-24 11:17:34

标签: python linux qt pyqt

我正在尝试使用以下功能打印treeView中指向的文件路径:

1)设置treeView的根索引:

self.treeView.setRootIndex(self.model.setRootPath("/some/unix/catalog"))

2)设置点击文件和打印名称的功能之间的连接:

QtCore.QObject.connect(self.ui.treeView, QtCore.SIGNAL("clicked(QModelIndex)"), self.print_path)

3)在print_path函数内打印,该函数将(QModelIndex)索引作为参数

print QtCore.QFileInfo(index.data(0).toString()).absoluteFilePath()

我的问题是我得到:

/path/to/source/files/of/the/project/nameofthefile.extension

代替:

/path/to/pointed/file/nameofthefile.extension

即使指向的文件位于子目录中,这些函数也只返回扩展名为源文件路径的文件名。 我做错了什么?

1 个答案:

答案 0 :(得分:2)

QtCore.QFileInfo(index.data(0).toString())

您正在使用本地路径创建新的FileInfo实例。 fileinfo无法知道此文件名所在的文件夹,因此它使用默认文件夹。把它想象成

QtCore.QFileInfo("readme.txt")

fileInfo怎么知道你的意思是readme.txt在/ my / nice / files /文件夹中?

您应该从

获取fileInfo
QFileSystemModel::fileInfo

所以在你的情况下:

self.model.fileInfo(index).absoluteFilePath()