Метод absoluteFilePath () Qt возвращает неправильный путь - PullRequest
1 голос
/ 24 апреля 2011

Я пытаюсь напечатать путь файла, указанный в 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 Ответ

2 голосов
/ 24 апреля 2011

В

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

вы создаете новый экземпляр FileInfo только с локальным путем. У fileinfo нет возможности узнать, в какой папке находится это имя файла, поэтому он использует папку по умолчанию. Думайте об этом как

QtCore.QFileInfo("readme.txt")

Откуда fileInfo узнает, что вы имеете в виду readme.txt в папке / my / nice / files /?

Вы должны получить файл Info из

QFileSystemModel::fileInfo

Итак, в вашем случае:

self.model.fileInfo(index).absoluteFilePath()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...