#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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务