QSortFilterProxyModel项目中文件和文件夹的完整信息

时间:2013-11-07 11:33:31

标签: c++ qt qtreeview qsortfilterproxymodel

我在QTreeView中使用QSortFilterProxyModel来浏览目录的所有文件和文件夹。它的工作正常。但我的问题是当我点击任何QTreeView的项目。我无法像完整路径那样获取其信息。任何人都可以告诉我如何获得文件的完整路径。

谢谢,

1 个答案:

答案 0 :(得分: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;
}