Question

J'utilise qsortfilterproxymodel dans qTreeView pour explorer tous les fichiers et dossiers d'un répertoire. Ça marche bien. Mais mon problème est lorsque je clique sur l'un des éléments de QTreeView. Je ne suis pas en mesure d'obtenir ses informations comme le chemin complet. Quelqu'un peut-il me dire comment obtenir son chemin complet du fichier.

Merci,

Était-ce utile?

La solution

Vous pouvez calculer le chemin complet de la manière suivante. Vous devez d'abord suivre les clics de souris sur le QTreeView avec connexion le clicked() Signal à la fente appropriée:

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

Dans votre emplacement, vous pouvez appeler la fonction d'assistance qui renverra le chemin complet du nœud d'arbre cliqué:

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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top