Я использую 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;
}
Других решений пока нет …