您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页Qt使用QTreeView树视图显示指定路径下的文件信息

Qt使用QTreeView树视图显示指定路径下的文件信息

来源:榕意旅游网

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDirModel>
#include <QTreeView>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QDirModel *tree_model;
    QTreeView *m_treeView;
};

#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    m_treeView = new QTreeView(this);
    this->setCentralWidget(m_treeView);//要把m_treeView放到中心部件里面

    tree_model = new QDirModel;
    m_treeView->setModel(tree_model);//索引必须来自当前设置的模型
    //设置根目录位置
    m_treeView->setRootIndex(tree_model->index("E:\\ant"));
    m_treeView->allColumnsShowFocus();

    //默认展开的文件位置
    QString filepath = "E:\\ant\\Qt";
    QStringList list=filepath.split("\\");

    //每次循环需要打开的文件路径
    QString findpath;

    //这里不能直接使用m_treeView->setExpanded(model->index(目标文件路径),1);
    //这样只能打开第一层文件夹,因此需要使用循环一层一层的打开。

    //循环一层一层的打开文件夹直到目标文件夹被打开
    foreach (QString addstr, list) {
        if(findpath.size()>0){
            addstr = '\\'+addstr;
        }
        findpath+=addstr;
        m_treeView->setExpanded(tree_model->index(findpath),1);//1(true)表示该Item含有子Item那么Item就会被展开或收缩
    }
}

MainWindow::~MainWindow()
{
    delete ui;
}

运行效果图:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务