QT第十天 Bertha 。 2022-04-11 11:42 307阅读 0赞 # QFileSystemModel # **使用QFileSystemModel作为数据模型,QTreeView,QListView和QTableView为主要组件** **在TreeView中一目录书的形式显示本机的文件系统** **单机一个目录是,右边的LIstView和TableView显示该目录下的目录和文件** **在TreeView上单击一个目录或文件节点是,下方的几个标签显示当前节点的信息** ## 头文件 ## #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(); private slots: void on_treeView_clicked(const QModelIndex &index); private: Ui::MainWindow *ui; QFileSystemModel *model; //定义数据模型变量 }; #endif // MAINWINDOW_H ## mainwindow.cpp ## \#include “mainwindow.h” \#include “ui\_mainwindow.h” MainWindow::MainWindow(QWidget \*parent) : QMainWindow(parent), ui(new Ui::MainWindow) \{ ui->setupUi(this); model=new QFileSystemModel(this); //QFileSystemModel提供单独线程,推荐使用 model->setRootPath(QDir::currentPath()); //设置根目录 ui->treeView->setModel(model); //设置数据模型 ui->listView->setModel(model); //设置数据模型 ui->tableView->setModel(model); //设置数据模型 //信号与槽关联,treeView单击时,其目录设置为listView和tableView的根节点 connect(ui->treeView,SIGNAL(clicked(QModelIndex)), ui->listView,SLOT(setRootIndex(QModelIndex))); connect(ui->treeView,SIGNAL(clicked(QModelIndex)), ui->tableView,SLOT(setRootIndex(QModelIndex))); \} MainWindow::~MainWindow() \{ delete ui; \} void MainWindow::on\_treeView\_clicked(const QModelIndex &index) \{ ui->chkIsDir->setChecked(model->isDir(index));//判断一个节点是不是一个目录 ui->LabPath->setText(model->filePath(index));//返回节点是不是目录名或路径名 ui->LabType->setText(model->type(index));//返回描述节点类型的文字,如"Drive",File Folder" ui->LabFileName->setText(model->fileName(index)); //fileName返回去除路径的文件夹名或文件名 int sz=model->size(index)/1024;//siz节点如果是文件返回文件大小字节数,如果是文件夹返回0 if (sz<1024) ui->LabFileSize->setText(QString("%1 KB").arg(sz)); else ui->LabFileSize->setText(QString::asprintf("%.1f MB",sz/1024.0)); \} ## mainwindow.ui ## ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70] ## 运行结果 ## ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70 1] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70]: /images/20220411/78351683244246b1afb6846cf69f1131.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70 1]: /images/20220411/33022c5bc3d14ae099baa287cd2c6b27.png
相关 QT第十天 QFileSystemModel 使用QFileSystemModel作为数据模型,QTreeView,QListView和QTableView为主要组件 在Tree Bertha 。/ 2022年04月11日 11:42/ 0 赞/ 307 阅读
相关 Qt第十六天 QPainter基本绘图 只有最基本的画图 widget.h ifndef WIDGET_H define WIDGET_H 待我称王封你为后i/ 2022年04月08日 13:24/ 0 赞/ 233 阅读
相关 Qt第十五天 自定义对话框及其调用 QWDialogSize的创建 qwdialogsize.h ifndef QWDIALOGSIZE_H define QW 以你之姓@/ 2022年04月08日 12:41/ 0 赞/ 273 阅读
相关 Qt第十二天 QStandardItemModel的使用 实现功能: 打开一个文本文件,该文件为二维数据文件,通过字符串处理获取表头和各行各列数据,导入到QStandardItem Bertha 。/ 2022年04月08日 10:15/ 0 赞/ 386 阅读
相关 Qt第十一天 QStringListModel的使用 采用QStringListModel作为数据模型,QListView组件作为视图组件 演示了QStringListModel和 痛定思痛。/ 2022年04月08日 09:22/ 0 赞/ 246 阅读
相关 Qt第十四天 标准对话框 QFileDialog文件对话框 QColorDialog颜色对话框 QFontDialog字体对话框 QInputDialog输入对话框 Q 野性酷女/ 2022年04月05日 12:44/ 0 赞/ 429 阅读
相关 Qt第十三天 自定义代理 \\基类为QItemDelegate, 必须实现4个函数 //自定义代理组件必须继承一下四个函数,函数的原型都是固定的 //创建编辑组件 QW た 入场券/ 2022年04月05日 07:09/ 0 赞/ 403 阅读
相关 Qt第十八天 Graphics View绘图程序实例 \\可以创建矩形,椭圆,圆,三角形,梯形,直线,文字等基本图形项 每个图形项可以被选择,拖动,放缩,旋转 图形项的前置和后 逃离我推掉我的手/ 2022年04月04日 11:47/ 0 赞/ 351 阅读
相关 Qt第十七天 QGraphicsView程序基本结构和功能实现 mainwindow.h ifndef MAINWINDOW_H define MAINWINDOW_ 快来打我*/ 2022年04月04日 09:18/ 0 赞/ 288 阅读
相关 Qt第十六天’ 坐标变换 坐标平移 坐标旋转 坐标缩放 状态的保存和恢复 widget.h ifndef WIDGET_H define WIDGET 快来打我*/ 2022年04月04日 03:07/ 0 赞/ 269 阅读
还没有评论,来说两句吧...