当前位置: 首页 > news >正文

ModelView【QT】

Model View

Qt 的 Model/View(模型 / 视图)架构 设计,核心思想是 “数据与显示分离”:将数据存储(Model)、用户交互(View)、数据转换(Proxy)拆分为独立组件,通过标准化接口协作

[数据源(SQLite 数据库)] → [源模型(QSqlTableModel)] → [代理模型(QSortFilterProxyModel)] → [视图(QTableView)]

Model 层是 QSqlTableModel:它是 Qt 提供的 “数据模型”,封装了与 SQLite 的连接和数据操作(比如从数据库读数据、向数据库写数据、同步修改等),为上层提供统一的数据访问接口(相当于 “数据管家”,屏蔽了底层数据库的细节)

View 层是 QTableView:它是 “视图组件”,只负责 可视化展示数据 和处理用户交互(比如点击表头排序、双击编辑单元格),完全不关心数据 “从哪来、怎么存”。

Model View 优点 ,如果后续从 SQLite 换成 MySQL 或显示方式(如从表格换成树状图)的修改,只需将SQLite 换成 MySQL,无需改动其他部分(如业务逻辑)

常用的 Model 类

标准模型

QStandardItemModel
QStringListModel
QFileSystemModel

数据库模型

QSqlQueryModel
QSqlRelationalTableModel
QSqlTableModel ,负责封装 SQLite 数据库表的 “增删改查” 操作,实现数据与视图的同步

抽象模型

QAbstractItemModel
QAbstractListModel
QAbstractTableModel

代理模型

QSortFilterProxyModel

视图(View)组件

QListView

QTreeView

QTreeView
QTreeView 适合展示明确分类关系的数据,通过层级结构

“父节点→子节点” 的层级形式展示数据(例如 “数学”“英语” 等科目作为顶层父节点,每个科目下包含多个学生子节点)

在这里插入图片描述

QColumnView

QTableView

QTreeView

表格视图(二维数据)

http://www.dtcms.com/a/392514.html

相关文章:

  • ES6 promise-try-catch-模块化开发
  • webrtc弱网-ProbeController类源码分析与算法原理
  • Pycharm远程同步Jetson Orin Super
  • 深入解析Tomcat类加载器:为何及如何打破Java双亲委派模型
  • 基于BP神经网络的PID控制器matlab参数整定和性能仿真
  • RabbitMQ死信队列与幂等性处理的性能优化实践指南
  • 基于python全国热门景点旅游管理系统的设计与实现
  • 鸿蒙Next ArkTS卡片生命周期:深入理解与管理实践
  • 荣耀手机(安卓)快速传数据换机到iPhone17 Pro
  • Linux的线程池
  • [bitcoin白皮书_1] 时间戳服务器 | 简化支付验证
  • OAuth 认证在电商 API 中的实现与安全
  • Linux 是什么?初学者速查表
  • openharmony之AV_CodeC音视频编解码模块驱动实现原理详解(三)
  • Llamaindex-Llama_indexRAG进阶_Embedding_model与ChromaDB-文档切分与重排序
  • 如何使用WordToCard自动拆分文章制作小红书卡片
  • RTX 4090重塑数字内容创作:4K视频剪辑与3D渲染的效率革命
  • Spring AI开发指导-MCP
  • C++/操作系统
  • 动手学深度学习(pytorch版):第八章节—循环神经网络(4)循环神经网络
  • Jenkins与Arbess,CICD工具一文全面对比分析
  • 矩阵、线性代数
  • react常用的hooks
  • 重构的艺术:从‘屎山’恐惧到优雅掌控的理性之旅
  • 在c++中,怎么理解把析构函数设置为virtual呢?
  • CUDA性能优化 ---- 通过矢量化内存访问提高性能
  • 【序列晋升】39 Spring Data REST 的优雅实践,让数据交互更符合 REST 规范
  • 能当关系型数据库还能玩对象特性,能拆复杂查询还能自动管库存,PostgreSQL 凭什么这么香?
  • 【2025PolarCTF秋季个人赛】WEB方向wp
  • Go基础:Go语言函数和方法详解