【问题标题】:How to Get Absolute Path of Currently Selected Item in QTreeView如何在 QTreeView 中获取当前选定项的绝对路径
【发布时间】:2013-07-25 18:18:14
【问题描述】:

我有一个简单的 QTreeView,其 QFileSystemModel 指向根目录:

#include "mainwindow.h"
#include <QApplication>
#include <QFileSystemModel>
#include <QtGui/QApplication>
#include <QtGui>
#include <QTreeView>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QFileSystemModel *model = new QFileSystemModel;
    QString dir("/");
    model->setRootPath(dir);
    QTreeView *tree = new QTreeView();
    tree->setModel(model);
    tree->setRootIndex(model->index((dir)));
    tree->show();
    return a.exec();
}

它显示如下内容:

我上面选择的项目是/usr/lib/clang。如何获取当前选中项的绝对路径?

【问题讨论】:

    标签: c++ qt views qtreeview


    【解决方案1】:

    使用view-&gt;selectionModel()-&gt;selectedIndexes() 获取选定的索引,使用fileSystemModel-&gt;filePath() 获取这些索引的路径。

    【讨论】:

    • QTreeView::selectedIndexes 是受保护的,因此调用它的唯一方法是编写一个派生自 QTreeView 的类。
    • +Pavel,工作正常。 QModelIndexList list = ui.treeViewCalib-&gt;selectionModel()-&gt;selectedIndexes();
    【解决方案2】:
    on_tree_clicked(const QModelIndex &index)
    {
        model->filePath(index)
    }
    

    【讨论】:

    • 请解释为什么这段代码有效以及您是如何决定要做什么的。
    • 这不够精确,所以......难以理解且无益
    猜你喜欢
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    相关资源
    最近更新 更多