Qt55 模型视图设计模式初探,QFileSystemModel,QTreeView

QFileSystemModel+QTableView显示自定义图标icon 平台:QT5.12.9 + Windows + mingw32(可直接编译,默认是桌面路径) 实现QFileSystemModel+QTableView创建文件管理系统,基于windows平台。 进一步优化该功能,为了适配嵌入式arm平台,实现QFileSystemModel的自定义修改图标功能。这样用户可以通过不同文件类型需求,自定义自己所要显示的图标。 说明:该程序默认文件路径为桌面路径,测试自定义的文件后缀类型为.txt,如果需要改为其他类型,仿照txt部分进行实现 立即下载

学习自唐佐林老师Qt


在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Widget.h

#ifndef WIDGET_H
#define WIDGET_H
#include <QtGui/QWidget>
#include <QFileSystemModel>
#include <QTreeView>
class Widget : public QWidget
{
    Q_OBJECT
    //创建文件系统模型对象,用于组织数据,组织文件夹和文件的数据
    QFileSystemModel m_fsModel;
    //创建树形显示视图对象
    QTreeView m_treeView;
public:
    Widget(QWidget *parent = 0);
    ~Widget();
};
#endif // WIDGET_H

Widget.cpp

#include "Widget.h"
#include <QDir>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    m_treeView.setParent(this);//设置视图组件父组件为当前窗口对象Widget
    m_treeView.move(10, 10);
    m_treeView.resize(500, 300);
    //从当前工作目录中取数据
    m_fsModel.setRootPath(QDir::currentPath());
    //链接视图与模型 为了在视图中呈现数据
    m_treeView.setModel(&m_fsModel);
    //设置视图的数据索引,从模型拿当前工作目录的索引,从而通过索引拿到当前工作目录的数据
    //从文件系统中的当前工作路径中取数据  将拿到的数据 显示到树形视图上面
    m_treeView.setRootIndex(m_fsModel.index(QDir::currentPath()));
}
Widget::~Widget()
{
    
}

main.cpp

#include <QtGui/QApplication>
#include "Widget.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    
    return a.exec();
}

在这里插入图片描述

在 SAP ECC 中定义 ledger 时遇到 “Define exactly one leading ledger“(消息号 FAGL_LEDGER_CUST012)的错误 摘要:SAP系统要求必须且只能定义一个主导分类账(Leading Ledger)。当出现错误消息FAGL_LEDGER_CUST012时,需通过事务码FINSC_LEDGER或SPRO路径检查分类账配置,确保仅有一个分类账被标记为"LeadingLedger",其余设为"Non-leadingLedger"。主导分类账是SAP默认用于标准报表的核心分类账,修改配置需谨慎以免影响已有数据。若问题未解决,建议检查未完成配置或查阅SAP Notes获取解决方案。 阅读详情

相关推荐

自动驾驶车辆纵向控制实战:基于CARLA与ROS2的PID算法实现

本文详细介绍了基于CARLA与ROS2的自动驾驶车辆纵向控制实战,重点讲解了PID算法的实现与应用。通过搭建仿真环境、实现定速巡航和自适应巡航功能,帮助开发者掌握自动驾驶核心技术。文章还分享了系统集成、仿真验证及常见问题的调试技巧,为自动驾驶开发提供实用指导。

weixin_33728708的博客 354

Qt之QTreeView与MVC设计模式

QtreeView是ui中最常用的控件,Qt中QTreeWidget比QTreeView更简单,但没有QTreeView那么灵活(QTreeWidget封装的和MFC的CTreeCtrl很类似,没有MVC的特点)。 1. QStandardItemModel在QTreeView中的使用 使用QTreeView的对应模型是 QStandardItemModel,这个是Qt对应ui界面最有用的模型...

YBAdiam的博客 1327

SRAM vs RRAM:存算一体芯片选型指南(含最新技术对比)

本文深入对比了SRAM与RRAM在存算一体芯片设计中的核心差异,为硬件工程师和架构师提供实战选型指南。文章从技术本质、性能、功耗、成本及设计风险等多维度剖析,指出SRAM基于成熟CMOS工艺,适合高精度、低延迟场景;而RRAM凭借非易失性和高密度潜力,在超低功耗、固定模型应用中优势明显。决策需综合项目预算、上市时间及技术储备。

e4f5g6h的博客 939

QTreeView更改节点图标和大小

ui->treeView->setIndentation(50); 然后使用stylesheet QTreeView::branch:has-children:open{image: url(:/png/close.png);} QTreeView::branch:has-children:closed{image: url(:/png/open.png);} QTreeView::item{height: 50px; color: red}

cysssa的博客 2789

Unity接入Google登录:Credential Manager完整集成指南与避坑实践

在移动应用开发中,第三方登录是提升用户体验和降低注册门槛的关键技术。其核心原理是通过OAuth 2.0等授权协议,安全地获取用户在平台的身份凭证。对于面向海外市场的Unity应用,Google登录因其庞大的用户基数成为首选方案。然而,随着Android系统更新和隐私政策收紧,传统的WebView登录方式面临兼容性挑战。Credential Manager作为Google推出的现代化凭据管理API,通过系统级集成解决了这一问题,它统一了密码、通行密钥和第三方登录的调用接口,显著提升了登录成功率和原生体验。在U

weixin_28025327的博客 318

告别手动调参!PSCAD 4.2的Multiple-Run功能,5分钟搞定交流故障批量仿真

本文详细介绍了PSCAD 4.2的Multiple-Run功能如何高效处理交流故障批量仿真,告别传统手动调参的低效模式。通过五步配置法,工程师可在5分钟内完成数百次参数组合的仿真,显著提升电力系统分析效率。文章还包含工业级应用案例和高级调试技巧,助力实现故障仿真的自动化与智能化。

weixin_42552716的博客 275

基于QTreeView和QFileSystemModel,如何做到展开/收缩文件夹分支时改变图标?

c++ //展开文件夹分支时改变QIcon connect(this, &QTreeView::expanded, this, [=](const QModelIndex &index){ //TODO }); //收缩文件夹分支时改变QIcon connect(this, &QTreeView::collapsed, this, [=](const QModelIndex &index){ ...

qq_41834573的博客 1329

HDR视频技术之七:逆色调映射

HDR 技术说是继 4K 之后视频领域的又一次重大技术突破,不仅提高图像的动态范围,同时也提供了更宽的色域,并提升了画面在高光和暗部的细节信息,带给观看者更加真实的视觉体验。但作为 HDR 产业链的核心,内容短缺的问题仍然是 HDR 普及和成熟的重要限制因素。众多电视厂商将 HDR 技术作为其产品规划中的重要技术,主要是在硬件方面进行提升。而由于 HDR 内容制作对于设备要求较高,对采集、调色、显示等多方面都需要较高的质量要求,内容制作的复杂度和周期长等因素,导致了 HDR 内容的匮乏。

多媒体开发者 2422

pyqt中的目录QFileSystemModel 内容用 QTreeView 显示

前两天做代码的时候自己实现了一个目录展示的效果,虽然有较强的扩展性,但是官方可能还是要完善一些。 经过几个小时的摸索,大概效果如下: import sys, os from PyQt5.QtWidgets import QApplication, QFileSystemModel, QTreeView, QWidget, QVBoxLayout, QDirModel from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidg

True Truth 3588

Python从0到100(一):初识Python及安装Pycharm

Python从0到100(一):初识Python及安装Pycharm。Python是由荷兰人吉多·范罗苏姆(Guido von Rossum)发明的一种编程语言,是目前世界上最受欢迎和拥有最多用户群体的编程语言。

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 8万+

Android 15.0 首次开机默认授予app运行时权限(去掉运行时授权弹窗)

在15.0的系统rom产品定制化开发中,在6.0以后对于权限的申请,都需要动态申请,所以会在系统首次启动后,在app的首次运行时, 会弹出授权窗口,会让用户手动授予app运行时权限,在由于系统产品开发需要要求默认授予app运行时权限,不需要用户默认授予运行时弹窗,所以需要在首次开机默认授予所有app运行时权限

安卓兼职framework和app工程师的博客 1204

No.55~57 模型视图设计模式

模型试图设计模式的核心思想:1、模型(数据)与视图(显示)相分离;2、模型对外提供标准接口存取数据(不关系数据如何显示);3、视图自定义数据的显示方式(不关系数据如何被组织和存储)。直观理解:其中Model指的就是 组织数据的方式。工作机制:一、当数据发生改变时,模型发生信号通知视图,视图对数据的变化做出相应的调整。(自由解析)二、当用户与视图进行交互时,视图发出信号,通过模型提取相应的数据。Qt...

Willwilling 388

Windows部署OpenClaw报错不断?这篇环境配置指南帮你解决难题

想在Windows上部署OpenClaw却频频报错?🔧 本文详细梳理了OpenClaw部署必需环境的安装步骤和官方下载地址 📦,提供完整的验证清单和常见问题排查方法,帮你一次性搞定所有环境配置,顺利部署OpenClaw ✅

XiaoqiangClub的博客 6626

QT 数据模型结构学习 :QFileSystemModel

qt自带几个比较方便的数据结构,今天学习 继承自 QAbstractItemModel 的 QFileSystemModel。 QFileSystemModel是一个用于访问本机文件系统的数据模型(还有一个是QDirModel,两者主要区别是使用主线程还是独立线程,建议使用独立线程的QFileSystemModel)。QFileSystemModel配合qt的view可以实现目录的访问。 QF...

Beyond欣 2234

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Qt 33 文件流和数据流,QTextStream,QDataStream

学习自唐佐林老师的Qt 总结: 1 使用QFile类的write(),read()直接将非字节类数据写入文本文件和数据文件需要类型转换。 2 QTextStream 使用:辅助类对象 ,写入辅助类对象的数据全部转换为可读文本,并用IO设备对象地址对其初始化,以指定类型读出数据 3 QDataStream 使用:辅助类对象 ,写入辅助类对象的数据全部转换为二进制数据,并用IO设备对象地址对其初始化,以指定类型读出数据 write() read() 所操作的是对象必须是直接的字节类数据,如果直接用QF

奶牛养殖场小马 1519

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Qt第11课 - Qt 中的字符串类,QString, QLineEdit文本框接收按键字符

本文学习自 狄泰软件 唐佐林老师的 QT课程。 Unicode:支持中文日文等等。。。 实验1 :QString 初体验 #include <QDebug> void Sample_1() { QString s = "add"; s.append(" "); // "add " s.append("Qt"); // "add Qt"...

奶牛养殖场小马 1383

Qt 23 布局管理器2 - QBoxLayout水平垂直布局管理器 ,QGridLayout网格布局管理器,以及比例系数设置

布局管理器的比例系数 1 默认情况下以等比例的方式跟新组件的大小 2 可以自定义组件大小更新时的比例系数 QBoxLayout 布局管理器中的比例系数 QBoxLayout 布局管理器中的比例系数设置方法 void QBoxLayout::setStretch ( int index, int stretch ) bool QBoxLayout::setStretchFactor ( QWidget * widget, int stretch ) bool QBoxLayout::setStretchFac

奶牛养殖场小马 1283

Qt42 文本打印QPrintDialog + QPrinter + QTextDocument 与光标定位 textCursor()

QTextDocument * QPlainTextEdit::document () const 在前面Qt 21 中有学到,打印对话框QPrintDialog类: 打印对话框QPrintDialog类 Qt中提供了预定义的打印对话框 QPrintDialog类,用于设置打印相关的参数信息 打印对话框使用方式 //构造打印对话框对象 QPrintDialog dlg(this); //设置打印对话框的相关属性 dlg.setWindowTitle("Print Dialog");//标题 if(.

奶牛养殖场小马 1177

Qt54 多页面切换组件 QTabWidget

学习自唐佐林老师的Qt Widget.h #ifndef WIDGET_H #define WIDGET_H #include <QtGui/QWidget> #include <QTabWidget> class Widget : public QWidget { Q_OBJECT QTabWidget m_tabWidget;//多页面切换组件对象 protected slots: void onTabCurrentChanged(i

奶牛养殖场小马 1116

Qt第8课 - 计算器界面设计

本文学习自 狄泰软件 唐佐林老师的 QT课程,文中图片源自老师课程PPT。 实验1:计算器界面 要注意的问题: 边开发 边查文档 实验:计算器界面 #include <QtGui/QApplication> #include <QWidget> //主窗口 #include <QLineEdit> //文本框 #include <QPushBu...

奶牛养殖场小马 911

QT17 - 对话框及其类型 QDialog

QDialog是QT中所有对话框的基类,QDialog继承于QWidget 是一种容器类型的组件,QDialog 对象 只能 必须 作为顶层的窗口而存在,不能作为子部件嵌入其他容器中,QDialog是定制了窗口样式的特殊的 QWidget。而QDialog 与 QWidget的区别也就是, QDialog 只能 作为顶层的窗口,而QWidget不是。 QDialog可以创建: 1 模态对话框: 阻塞式对话框,在栈上创建,显示后 无法与父窗口交互,一直位于顶层 QDialog::exec() ,创建模态对

奶牛养殖场小马 868

Qt 32 Qt中的文件操作 QFile文件, QFileInfo文件属性,QTemporaryFile临时文件

学习自唐佐林老师的Qt 连续的存储空间:有可能是内存,硬盘,串口,USB口等 顺序存取设备:如 连接到串口上面的设备 随机存取设备:文件操作 IO 操作的本质就是对连续空间的读写,该连续空间可以是内存空间,也可以是外存空间。文件是保存在外部空间中的连续数据,即硬盘,文件是保存在硬盘上面的。所以文件操作 就是对硬盘上连续空间进行数据的读写,并且可以在这片连续空间当中任意位置进行定位。 文件操作是一种随机设备的存取。 QFile : 文件IO QBuffer : 内存中一片连续的内存空间 QAbstrac

奶牛养殖场小马 786

Qt 20 标准对话框 - 颜色对话框QColorDialog,输入对话框QInputDialog

颜色对话框QColorDialog QT中提供了预定义的颜色对话框 QColorDialog类 QColorDialog类用于提供颜色的对话框部件 颜色对话框使用: //构造颜色对话框对象 并指定父窗口 QColorDialog dlg(this); //设置颜色对话框的相关属性 dlg.setWindowTitle("Color Editor");//设置标题 dlg.setCurrenColor(Qt :: red);// 初始颜色 //以模态方式打开颜色对话框 if(dlg.exec() == Q

奶牛养殖场小马 728

Qt 22 布局管理器1 - QLayout,QBoxLayout,布局管理器的相互嵌套

布局管理器 提供相关的类对界面组件进行布局管理 能够自动排布窗口中的界面组件 窗口变化后自动更新界面组件的大小 QLayout QLayout 是Qt 中布局管理器的抽象基类 通过继承QLayout实现了功能各异且互补的布局管理器 Qt中可以根据需要自定义布局管理器 布局管理器不是界面部件,而是界面部件的定位策略 QBoxLayout 布局管理器 以水平或者垂直的方式管理界面组件 水平:QHBoxLayout 水平布局管理器 垂直:QVBoxLayout 垂直布局管理器 sizePolicy:QSize

奶牛养殖场小马 704

Qt 27 应用程序中的主窗口

MainWindow.h #ifndef _MAINWINDOW_H_ #define _MAINWINDOW_H_ #include <QtGui/QMainWindow> #include <QKeySequence> #include <QMenuBar> #include <QAction> class MainWindow : public QMainWindow { Q_OBJECT private: MainWindo...

奶牛养殖场小马 675

Qt 39 Qt中的事件处理,事件ignore以及事件过滤器

学习自唐佐林老师的Qt 实验1:事件被组件对象处理后可能传递到其父组件 MyLineEdit.h #ifndef MYLINEEDIT_H #define MYLINEEDIT_H #include <QLineEdit> class MyLineEdit : public QLineEdit { Q_OBJECT public: explicit MyLineEdit(QWidget *parent = 0); bool event(QEvent* e);

奶牛养殖场小马 641

Qt第10课 - 计算器界面设计,信号与槽初探

本文学习自 狄泰软件 唐佐林老师的 QT课程。 实验1 初探信号与槽 #include <QtGui/QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication a(argc, argv);//应用程序对象 QPushButton b;...

奶牛养殖场小马 635
上一篇: Qt54 多页面切换组件 QTabWidget
下一篇: Qt56 模型与视图设计模式2,关于索引!!!
Ma浩然
博客等级 码龄9年 1万+粉丝 462原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ma浩然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值