Метод absoluteFilePath () Qt возвращает неправильный путь

1

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

Даже если указанные файлы находятся в подкаталогах, эти функции возвращают только имя файла с расширением, объединенным в путь к исходным файлам. Что я делаю неправильно?

Теги:
qt
pyqt

1 ответ

2
Лучший ответ

В

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

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

QtCore.QFileInfo("readme.txt")

Как может fileInfo знать, что вы имеете в виду, что readme.txt находится в /my/nice/files/folder?

Вы должны получить fileInfo из

QFileSystemModel::fileInfo

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню