随笔分类 -  Qt MVC --- Model/View

qt model/view 结构学习
摘要:任务1:显示如图的树形结构 思考: 1.使用QTreeView显示。 2.Model使用QStandardItemModel,qt的一个标准model。 3.QStandardItemModel下每一个单元都可以看作QStandardItem。 4.QStandardItemModel中invisi 阅读全文
posted @ 2017-05-29 22:10 billxyd 阅读(1266) 评论(0) 推荐(0)
摘要:任务:给表单的每一列添加列名。 思考: 1.只需要添加一个函数 headerData()。 横向方面添加列名 代码如下: 阅读全文
posted @ 2017-05-29 01:10 billxyd 阅读(199) 评论(0) 推荐(0)
摘要:任务:3x2的表格,第一个单元格显示当前时间 思考: 1.data函数里面QTime::currentTime()显示当前时间 2.但是这个事件是一个固定的时间,不会变动 3.需要时间变动,View就得每秒中都从Model中调用data函数。 4.这里就需要定时器。 5.定时器每秒发射1个信号。这个 阅读全文
posted @ 2017-05-29 01:05 billxyd 阅读(299) 评论(0) 推荐(0)
摘要:任务:显示一个2x3的表格,将表格中的数据显示如下: 思考: 1.如何显示数据和上个例子一样。 2.但是每个单元格的数据都是有角色划分的。 Qt::ItemDataRole 3.View从Model中获取数据,通过data函数。每一个单元格根据角色,调用多次data函数。个人理解:单元格什么角色都调 阅读全文
posted @ 2017-05-29 00:18 billxyd 阅读(317) 评论(0) 推荐(0)
摘要:1.如图显示一个2x3的表格: 思考: 1.QTableView显示这个表 2.QAbstractTableModel作为模型类。 3.文档中找到subclass的描述 When subclassing QAbstractTableModel, you must implement rowCount 阅读全文
posted @ 2017-05-28 22:56 billxyd 阅读(390) 评论(0) 推荐(0)
摘要:Concepts 不像MVC模式,Model/View模式并没有单独用来处理事件和用户交互的组件(controller)。通常,视图负责向用户呈现模型中的数据,并处理用户的输入。有时,为了让输入更加灵活,使用Delegate处理交互。Delegate组件提供输入功能,还负责渲染某个Item。Dele 阅读全文
posted @ 2017-05-28 21:25 billxyd 阅读(458) 评论(0) 推荐(0)
摘要:Basic Concepts 在Modle/View 结构中,View从Model中提取数据,并显示给用户。View显示数据的方式不一定与Model中数据排列方式相同,也可能与底层数据结构完全不同。 通过QAbstractItemView提供标准的视图接口,QAbstractModelView提供标 阅读全文
posted @ 2017-05-28 13:24 billxyd 阅读(321) 评论(0) 推荐(0)
摘要:任务: 1.新建一个空的mainwindow项目 2.debug下编译得到一个文件夹,应用程序输出这个文件夹中的文件(不显示文件夹中的文件夹) 3.使用QFileSystemModel完成。 本例显示结果: Makefile Makefile.Debug Makefile.Release ui_ma 阅读全文
posted @ 2017-05-28 02:06 billxyd 阅读(1255) 评论(0) 推荐(0)
摘要:Basic Concepts 在Model/View结构中,Model提供标准的接口让View和Delegate获得数据。在QT中,标准的接口都被定义在QAbstractItemModel类中。不论数据如何存储在底层的数据结构中,任何QAbstractItemModel的子类,将数据表示为表或者树等 阅读全文
posted @ 2017-05-28 01:26 billxyd 阅读(722) 评论(0) 推荐(0)
摘要:Introduction to Model/View Programming QT4 介绍了一系列新的 Item View 类,这些类使用Model/View结构来管理数据和数据如何呈现给用户。这种结构使程序员更加灵活的开发和定制呈现数据界面,Model/View结构提供标准的Model接口让各种数 阅读全文
posted @ 2017-05-28 01:17 billxyd 阅读(2074) 评论(0) 推荐(0)
摘要:通过document view设计,我们把应用程序的状态(clicktimes)从一个简单的类设计中抽取出来。下一个目标是抽取转化主要的事件(这个例子里面是鼠标点击之后释放)为应用程序逻辑从而改变应用程序状态(让clicktimes 加1)的代码。最终成为传统的MVC 在传统的MVC中,docume 阅读全文
posted @ 2017-05-28 01:13 billxyd 阅读(238) 评论(0) 推荐(0)
摘要:为了解决一个类实现所有功能的缺陷,我们把application分为2个部分。一个部分业务逻辑,一个部分视觉渲染和交互。这2个类在学术上被称为document view 或者 model delegate。 Document类用来处理业务逻辑,和视觉渲染、GUI事件没有一点关系。它简单的存储应用程序的 阅读全文
posted @ 2017-05-27 22:44 billxyd 阅读(234) 评论(0) 推荐(0)
摘要:任务:一个简单的按钮类(QPushButton),能显示点击次数。 我们希望这个简单的gui程序能满足: 1.接收用户驱动事件,比如用户点击鼠标。 2.保存应用程序逻辑,将驱动事件转化成应用程序状态改变。 3.保存应用程序的状态。 4.将状态视觉化。 代码如下: counter.h counter. 阅读全文
posted @ 2017-05-27 13:31 billxyd 阅读(324) 评论(0) 推荐(0)
摘要:GUI(graphic user interface 用户图形界面)。GUI编程的目的是提供交互性,并根据用户的操作实时的更新界面。用户的操作是不可预知的鼠标和键盘事件,我们如何保持同步和更新?在上层,我们必须考虑清楚业务逻辑。在代码层,我们如何把业务逻辑转化成对象之间的通讯(可能有网络通讯)? M 阅读全文
posted @ 2017-05-27 00:40 billxyd 阅读(504) 评论(0) 推荐(0)