Model 指的是数据

View 指的是界面,View不用设置,只需要和Model进行绑定,绑定完成之后就是Model的格式了

例子:*本例子中QListView QTableView QTreeView没有做任何处理,只是拖放至ui文件,设置了布局

MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include <QFileSystemModel> QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE class MainWindow : public QMainWindow
{
Q_OBJECT public:
MainWindow(QWidget *parent = nullptr);
~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"
#include <QDir> MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
model = new QFileSystemModel(this);
model->setRootPath("/home/xinkai/");//这句话不知道为啥不生效,还是在/这个文件夹
ui->treeView->setModel(model); //model 和View做关联
ui->listView->setModel(model);
ui->tableView->setModel(model); 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;
} /**
* @brief MainWindow::on_treeView_clicked 现实文件名
* @param index
*/
void MainWindow::on_treeView_clicked(const QModelIndex &index)
{
QString fileName = model->fileName(model->index(model->filePath(index)));//通过文件路径获取文件名称
qint64 size = model->size(index);
QString type = model->type(index);
bool isDir = model->isDir(index);
QString filePath = model->filePath(index); ui->labelName->setText(fileName);
ui->labelSize->setText(QString("%1B").arg(size));
ui->labelType->setText(type);
ui->statusbar->showMessage(filePath);
ui->cBoxisDictionary->setChecked(isDir);
}

最终界面样式

QT5笔记: 19. QFileSystemModel 联动 QListView QTableView QTreeView的更多相关文章

  1. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法

    Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...

  2. SQL反模式学习笔记19 使用*号,隐式的列

    目标:减少输入 反模式:捷径会让你迷失方向 使用通配符和未命名的列能够达到减少输入的目的,但是这个习惯会带来一些危害. 1.破坏代码重构:增加一列后,使用隐式的Insert插入语句报错: 2.查询中使 ...

  3. JAVA自学笔记19

    JAVA自学笔记19 1.集合总结 Collection(单列集合) List(有序可重复) ArrayList:底层数据结构是数组 ,查询快,增删慢.线程不安全,效率高 Vector:底层数据结构是 ...

  4. golang学习笔记19 用Golang实现以太坊代币转账

    golang学习笔记19 用Golang实现以太坊代币转账 在以太坊区块链中,我们称代币为Token,是以太坊区块链中每个人都可以任意发行的数字资产.并且它必须是遵循erc20标准的,至于erc20标 ...

  5. springmvc学习笔记(19)-RESTful支持

    springmvc学习笔记(19)-RESTful支持 标签: springmvc springmvc学习笔记19-RESTful支持 概念 REST的样例 controller REST方法的前端控 ...

  6. tornado学习笔记19 Tornado框架分析

    19.1 Http服务器请求处理流程图 (1) 调用HTTPServer的bind方法,绑定Socket的监听端口号: (2) 调用HTTPServer的listen方法,初始化一个listen so ...

  7. AMQ学习笔记 - 19. 问题解决 - 控制Atomikos的日志输出

    概述 在使用Atomikos为ActiveMQ提供JTA支持时,Atomikos在控制台打印了繁琐的日志.这里介绍如何控制Atomikos日志输出的粒度. 解决方案 基于以下三个事实: Atomiko ...

  8. Oracle 学习笔记 19 -- 触发器和包浅析(PL/SQL)

    触发器是存放在数据库中的一种特殊类型的子程序.不能被用户直接调用,而是当特定事件或操作发生时由系统自己主动 调用执行.触发器不能接受參数.所以执行触发器就叫做触发或点火.Oracle事件指的是数据库的 ...

  9. ArcGIS API for JavaScript 4.2学习笔记[19] 搜索小部件——使用更多数据源

    上一篇中提到,空间搜索小部件是Search这个类的实例化,作为视图的ui属性添加进去后,视图就会出现搜索框了. 这节的主体代码和上篇几乎一致,区别就在上篇提及的sources属性. 先看看结果: 由于 ...

  10. 老男孩Python全栈开发(92天全)视频教程 自学笔记19

    day19 课程内容: 第19天的课程就是复习一些正则表达式,以及说一下计算器的思路,我就把我做的计算器代码当这一天的内容吧. 计算器作业:不eval函数,计算能计算:'1-2*((60-30-8*( ...

随机推荐

  1. 真正“搞”懂HTTPS协议19之HTTPS优化

    这是本系列的最后一篇了,其实本篇的内容也跟前两篇TLS的握手和优化有关系.其实HTTPS的核心就是TLS的明文握手连接,前两篇我们花了很大的篇幅来聊这些,另外一个就是在TLS握手完成后的密文传输部分了 ...

  2. Excel使用IF{1,0}虚拟数组+VLOOKUP实现联合查询

    以此案例举例: 使用IF({1,0})建立虚拟数据的方法,整体输入的公式是: =VLOOKUP(E2&F2,IF({1,0},A:A&B:B,C:C),2,0) 输入完公式之后,需要按 ...

  3. 鸿蒙应用开发从入门到入行 - 篇1:HarmonyOS介绍——带你深入理解鸿蒙特性

    鸿蒙应用开发从入门到入行 第一天 - HarmonyOS介绍 导读:在本篇文章里,您将了解到HarmonyOS是什么,以及有哪些振奋人心的特性.并且猫林老师会在本篇文章里给出结论:鸿蒙必能蚕食安卓份额 ...

  4. 实用干货分享 - Oracle数据库RPM部署指南

    下载依赖和Oracle19c版本的RPM包 http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-dat ...

  5. 【web】一个自适应的导航栏前端设计(只含HTML+CSS)

    上一篇文章:[前端]CSS实现图片文字对齐 并随着设备尺寸改变而改变大小 本文是基于上一篇文章的补充. 效果如下 HTML源码 点击查看HTML代码 <!DOCTYPE html> < ...

  6. go语言签发和验证license

    https://www.cnblogs.com/guangdelw/p/18328342 生成非对称密钥 package main import ( "crypto/rand" & ...

  7. Unity 3D更换默认脚本编辑器VisualStudio

    由于VisualStudio 30天试用到期了,所有不能编辑Unity 3D脚本.需要更换成Notepad++ 打开Unity 3D顶部菜单 点击编辑(Editor)->Preferences- ...

  8. Qt编写地图综合应用10-点聚合

    一.前言 点聚合在地图相关应用中比较常用,比如在地图上查询结果通常以标记点的形式展现,但是如果标记点较多,不仅会大大增加客户端的渲染时间,让客户端变得很卡,而且会让人产生密集恐惧症,密密麻麻的一大堆点 ...

  9. [转]boost使用之编译库及遇到的问题

    最近因为在学习网络编程相关的东西,准备学习一下boost,毕竟原生的网络编程太麻烦.看了一下其实windows下想使用起来很简单,就是下载库,然后运行脚本,然后运行exe库就出来.在把头文件和库的目录 ...

  10. JavaWeb代码架构中类之间的引用关系

    为了加深对Java Web代码架构中类之间的引用关系的理解和记忆,特绘制了这一张图. Java EE应用架构: