Domanda

Sto usando QsortFilterProxyModel in Qtreeview per esplorare tutti i file e le cartelle di una directory. Funziona bene. Ma il mio problema è quando faccio clic su uno qualsiasi degli elementi di Qtreeview. Non sono in grado di ottenere le sue informazioni come il percorso completo. Qualcuno può dirmi come ottenere il suo percorso completo del file.

Grazie,

È stato utile?

Soluzione

È possibile calcolare l'intero percorso con il modo seguente. Per prima cosa è necessario tenere traccia dei clic del mouse su QTreeView Con il collegamento del clicked() segnale allo slot appropriato:

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

Nella slot puoi chiamare la funzione helper che restituirà il percorso completo del nodo albero cliccato:

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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top