È 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;
}