QT学习:模型/视图基本概念
Qt的模型/视图结构分为三部分:模型(Model)、视图(View)和代理(Delegate)。其中,模型与数据源通信,并为其他部件提供接口;而视图从模型中获得用来引用数据条目的模型索引(Model Index)。在视图中,代理负责绘制数据条目,当编辑条目时,代理和模型直接进行通信。模型/视图/代理之间通过信号和槽进行通信,如图所示:
(1)数据发生改变时,模型发出信号通知视图。
(2)用户对界面进行操作,视图发出信号。
(3)代理发出信号告知模型和视图编辑器目前的状态。
一、模型
InterView框架中的所有模型都基于抽象基类QAbstractItemModel,此类由QProxyModel、QAbstractListModel、QAbstractTableModel、QAbstractProxyModel、QDirModel、QFileSystemModel、QHelpContentModel和QStandardItemModel类继承。其中,QAbstractListModel类和QAbstract TableModel类是列表和表格模型的抽象基类,如果需要实现列表或表格模型,则应从这两个类继承。完成QStringList存储的QStringListModel类继承自QAbstractListModel类,而与数据库有关的QSqlQueryModel类继承自QAbstractTableModel类;QAbstractProxyModel类是代理模型的抽象类;QDirModel类是文件和目录的存储模型。
二、视图(View)
InterView框架中的所有视图都基于抽象基类QAbstractItemView,此类由QColumnView、QHeaderView、QListView、QTableView和QTreeView类继承。其中,QListView类由QUndoView类和QListWidget类继承;QTableView类由QTableWidget类继承;QTreeView类由QTreeWidget类继承。而QListWidget类、QTableWidget类和QTreeWidget类实际上已经包含了数据,是模型/视图集成在一起的类。
三、代理(Delegate)
InterView框架中的所有代理都基于抽象基类QAbstractItemDelegate,此类由QItemDelegate和 QStyledItemDelegate类继承。其中,QItemDelegate类由表示数据库中关系代理的QSqlRelationalDelegate类继承。
QT学习:模型/视图基本概念相关推荐
- Qt中模型/视图结构
8.1 概述 MVC设计模式是起源于Smalltalk的一种与用户界面相关的设计模式.通过使用此模型,可以有效地分离数据和用户界面.MVC设计模式包括三个元素:表示数据的模型 (Model).表示用户 ...
- Qt5入门学习——模型/视图结构
文章目录 概述 基本概念 简单文件目录浏览器[简单示例] 模型(Model) 自定义模型[示例] 视图(View) 表格数据显示[示例] 代理(Delegate) 利用Delegate设计表格控件[示 ...
- [转载]Qt之模型/视图(自定义风格)
原文地址:Qt之模型/视图(自定义风格)作者:一去丶二三里 关于自定义风格是针对视图与委托而言的,使用事件与QSS都可以进行处理,今天关于美化的细节讲解一下. 先看下图: 先撇开界面的美观性(萝卜青菜 ...
- [转载]Qt之模型/视图(自定义风格)_vortex_新浪博客
原文地址:Qt之模型/视图(自定义风格)作者:一去丶二三里 关于自定义风格是针对视图与委托而言的,使用事件与QSS都可以进行处理,今天关于美化的细节讲解一下. 先看下图: 先撇开界面的美观性(萝卜青菜 ...
- [转载]Qt之模型/视图(实时更新数据)
原文地址:Qt之模型/视图(实时更新数据)作者:一去丶二三里 上两节简单介绍了Qt中对于模型/视图的编程,大部分助手里说的很清楚了,现在就开始实战部分吧! 在实际应用中,视图展示的数据往往并非一成不变 ...
- [转载]Qt之模型/视图(实时更新数据)_vortex_新浪博客
原文地址:Qt之模型/视图(实时更新数据)作者:一去丶二三里 上两节简单介绍了Qt中对于模型/视图的编程,大部分助手里说的很清楚了,现在就开始实战部分吧! 在实际应用中,视图展示的数据往往并非一成不变 ...
- Qt - MVC模型/视图编程
MVC模型/视图编程 Qt中的模型/视图架构用来实现大量的数据存储.处理及显示. MVC(Model-View-Controller)包括了3个组件: 模型(Model)是应用对象,用来表示数据: 视 ...
- 【Qt】模型-视图-代理(Model-View-Delegate)
Qt英文手册:https://qmlbook.github.io/assets/qt5_cadaques.pdf 文章目录 一.概念(Concept) 二.基础模型 三.动态视图(Dynamic Vi ...
- 【Qt】模型/视图结构和数据绑定控件
模型/视图结构 模型/视图是指处理数据的模型和向用户提供GUI的视图,这是从GUI分离数据的一种结构,又称为MVC(Model-View-Controller). 模型 QAbstractItemMo ...
最新文章
- 论文笔记之:Deep Attributes Driven Multi-Camera Person Re-identification
- Docker核心技术之联合文件系统
- GitChat · 前端 | Vue 组件库实践和设计
- [Spark]如何设置使得spark程序不输出 INFO级别的内容
- Zookeeeper开源客户端curator watcherAPI的使用
- 计算机通信发展史,通信技术发展史
- Windows安装多个不同版本谷歌chrome浏览器
- 基于VUMAT复合材料夹层结构冲击仿真
- 移动硬盘计算机无法打开硬盘,移动硬盘无法访问,详细教您移动硬盘无法访问怎么办...
- java520.1314表白_告白日表白公式 520.1314 临沂人知道怎么玩吗
- mapbox-gl加载带环境贴图白模(视频)
- 浅谈角色换装功能--前置篇【骨骼,蒙皮,动作】
- SQL SERVER 2000 企业管理器免安装方法
- Vue中qs插件的使用
- 唉!一 28 岁程序员因新冠离世。。。
- 云原生管理平台如何掀起“云网联动”新篇章
- 途胜怎样与android手机互联,汽车知识普及:现代途胜车载蓝牙怎么连接 途胜手机互联映射教程...
- 虚拟机ping外网连接失败解决方法
- 音视频流媒体开发—H264 编解码协议
- 完美解决Error:Failed to open zip file. Gradle‘s dependency cache may be corrupt (this sometimes occurs a
热门文章
- 北京招聘 | 澜舟科技招聘NLP工程师、NLP研究员、产品项目经理
- PaddlePaddle版Flappy-Bird—使用DQN算法实现游戏智能
- 来不及想标题了,我要去打包收藏了 | 本周值得读
- HDU2091 空心三角形 水题
- php基础标签大全,HTML基础之HTML常用标签
- java按位取反“~“运算符,负数右移
- 云原生系列「五」我为啥又看上了serviceMesh?
- FineReport——设计时无相关数据库查看权限,使用对应数据库解决方案
- LeetCode 7 整数反转
- JAVA——后端Vue动态路由配置类JavaBean封装