我正在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;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top