Полная информация о файлах и папках в элементах QsortFilterProxyModel

StackOverflow https://stackoverflow.com/questions/19834850

Вопрос

Я использую qsortfilterproxymodel в Qtreeview для изучения всех файлов и папок каталога. Это работает нормально. Но моя проблема в том, когда я нажимаю на любой элемент QtreeView. Я не могу получить его информацию, как полный путь. Может ли кто -нибудь сказать мне, как получить полный путь файла.

Спасибо,

Это было полезно?

Решение

Вы можете рассчитать весь путь следующим образом. Сначала вам нужно отслеживать клики мыши на QTreeView с соединением clicked() сигнал на соответствующий слот:

connect(treeview, SIGNAL(clicked(const QModelIndex &)), this, SLOT(onItemClicked(const QModelIndex &)); 

В своем слоте вы можете вызвать вспомогательную функцию, которая вернет полный путь нажатого узла дерева:

void TreeView::onItemClicked(const QModelIndex &index)
{
    QString path = fullPath(index);
    // ..
}

QString TreeView::fullPath(const QModelIndex &index)
{
    QString path('/');
    QModelIndex parent = index;
    while (parent.isValid()) {
        path.prepend('/' + parent.data().toString());
        parent = parent.parent();
    }
    return path;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top