1.显示效果
左边是文件列表,右边是文字提示,提示内容是点击的文件相关的信息
2.UI设计
左边放的是QTreeView,右边是QTextBrowser
3.mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QFileSystemModel>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
//文件列表被单击时,调用此函数
void TreeClicked(const QModelIndex &index);
private:
Ui::MainWindow *ui;
//Qt自带的类-文件系统模型
QFileSystemModel *m_model;
};
#endif // MAINWINDOW_H
4.mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDir>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_model = new QFileSystemModel;
//设置要显示的根目录
m_model->setRootPath(QDir::currentPath());
//设置数据源
ui->treeView->setModel(m_model);
//设置树形视图的根节点
ui->treeView->setRootIndex(m_model->index(QDir::currentPath()));
connect(ui->treeView,&QTreeView::clicked,this,&MainWindow::TreeClicked);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::TreeClicked(const QModelIndex &index)
{
//获取被点击的文件的信息并显示
QString strShow = m_model->isDir(index)? "selected is dir: ":"selected is file: ";
strShow.append(m_model->fileName(index));
ui->textBrowser->append(strShow);
}