0

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

谢谢,

4

1 回答 1

0

您可以通过以下方式计算完整路径。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;
}
于 2013-11-07T12:40:01.167 回答