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/……/");//这句话不知道为啥不生效,还是在/这个文件夹
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);
}

最终界面样式

Qt QFileSystemModel 的使用的更多相关文章

  1. Qt QFileSystemModel QDirModel 示例代码, 使用方法

    1.  QFileSystemModel 查看,添加 和 删除目录 2. 实现代码 dialog.h #ifndef DIALOG_H #define DIALOG_H #include <QD ...

  2. Qt 学习之路:QFileSystemModel

    上一章我们详细了解了QStringListModel.本章我们将再来介绍另外一个内置模型:QFileSystemModel.看起来,QFileSystemModel比QStringListModel要 ...

  3. qt model/view 架构自定义模型之QFileSystemModel

    # -*- coding: utf-8 -*- # python:2.x #QFileSystemModel """ Qt  内置了两种模型:QStandardItemM ...

  4. Qt 学习之路 2(44):QFileSystemModel

    Home / Qt 学习之路 2 / Qt 学习之路 2(44):QFileSystemModel Qt 学习之路 2(44):QFileSystemModel  豆子  2013年2月21日  Qt ...

  5. PyQt(Python+Qt)学习随笔:model/view架构中的两个标准模型QStandardItemModel和QFileSystemModel

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.PyQt中的标准模型 PyQt和Qt提供了两个标准模型QStandardItemModel和QF ...

  6. 用Qt写软件系列五:一个安全防护软件的制作(3)

    引言 上一篇中讲述了工具箱的添加.通过一个水平布局管理器,我们将一系列的工具按钮组合到了一起,完成了工具箱的编写.本文在前面的基础上实现窗体分割效果.堆栈式窗口以及Tab选项卡. 窗体分割 窗体分割是 ...

  7. Qt 自定义model实现文件系统的文件名排序(重定义sort函数即可。忽然开窍了:其实捕捉点击Header事件,内部重排序,全部刷新显示即可)

    前段时间,需要做一个功能是要做文件系统的排序的功能.由于是自己写的model, 自己定义的数据结构.最初的想法只有一个自己去实现文件夹跟文件名的排序算法,不过感觉比较费时间.后来想到的是QFileSy ...

  8. Qt 自定义model实现文件系统的文件名排序

    前段时间,需要做一个功能是要做文件系统的排序的功能.由于是自己写的model, 自己定义的数据结构.最初的想法只有一个自己去实现文件夹跟文件名的排序算法,不过感觉比较费时间.后来想到的是QFileSy ...

  9. Qt 学习之路:QSortFilterProxyModel

    从本章开始,我们将逐步了解有关自定义模型的相关内容.尽管前面我们曾经介绍过 Qt 提供的几个内置模型:QStringListModel和QFileSystemModel,但对于千变万化的需求而言,这些 ...

  10. 【转】Qt之模型/视图

    [本文转自]http://blog.sina.com.cn/s/blog_a6fb6cc90101hh20.html   作者: 一去丶二三里 关于Qt中MVC的介绍与使用,助手中有一节模型/视图编程 ...

随机推荐

  1. 树莓派4B 多屏 QT程序窗口全屏 QScreen 只能获取1个屏幕

    直接运行程序时,窗口全屏, 并且QScreen 只能获取1个屏幕,这是由于QT默认使用了EGLFS.(坑了一下午) 所以必须采用命令方式打开程序. ./程序名称 -platform xcb

  2. openEuler-怎么看服务器操作系统是不是欧拉系统?

    ​[root@localhost ~]# cat /etc/os-release NAME="openEuler" VERSION="22.03 (LTS-SP2)&qu ...

  3. [转]VS2019生成项目文件.lib或.dll或exe后如何拷贝到指定的目录文件夹

    VS2019编译CloudCompare,发现生成的项目文件都是分开的,每个项目下都有自己的文件夹Debug/Release,生成Dll都放在这些单独的项目文件夹内. 目标 (1)通常,我们要求所有的 ...

  4. IDEA导入他人的项目时提示“project sdk is not defined”的解决办法

    IDEA导入他人的项目时提示"project sdk is not defined"的解决办法 1.在IDEA中,在有问题的项目上单击鼠标右键,然后选择"Open Mod ...

  5. 闲话即时通讯:腾讯的成长史本质就是一部QQ成长史

    1.前言 在猴年新春的时候,腾讯当时推出了新春广告片(点击观看视频),作为<弹指间 心无间>的延续.片中通过春节期间发送QQ红包让家人打车回家团聚,让我们感受到了"最温暖的红包, ...

  6. Kubernetes系列(三) - 通过Kubeadm部署kubernetes

    目录 1. Kubeadm简介 2. 本次操作的机器配置 3. 部署步骤 3.1 准备工作 3.2 安装docker 3.3 安装kubeadm, kubectl, kubelet 3.4 maste ...

  7. 敏捷开发:如何高效开每日站会(Daily Stand-up Meeting)

    介绍 在敏捷开发框架 Scrum 中,每日站会(Daily Stand-up Meeting,又叫 Daily Scrum)是 Sprint 迭代开发中,一个很重要的流程,一个重要的例会.在有限的时间 ...

  8. Windows环境配置Nginx服务实现负载均衡

    系统环境:win10 测试服务:.net6.0+webapi 一.本地创建一个webapi项目 二.新建一个api控制器,里面编写一个测试方法 三.我直接把这一个项目复制了3份,然后修改控制器方法中的 ...

  9. Android开发快速入门iOS开发概览

    注:本文同步发布于微信公众号:stringwu的互联网杂谈 Android开发快速入门iOS开发概览 1 前言 笔者总结了自己在拥有Android开发的相关基础后入门iOS开发时遇到的点点滴滴给其他想 ...

  10. 让 LLM 来评判 | 基础概念

    基础概念 这是 让 LLM 来评判 系列文章的第一篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技巧与提示 什么是评估模 ...