我在 QTreeView 中使用 QSortFilterProxyModel 来探索目录的所有文件和文件夹。它工作正常。但我的问题是当我点击 QTreeView 的任何项目时。我无法获得完整路径之类的信息。谁能告诉我如何获取文件的完整路径。
谢谢,
我在 QTreeView 中使用 QSortFilterProxyModel 来探索目录的所有文件和文件夹。它工作正常。但我的问题是当我点击 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;
}