Qt 学习之路 2(45):模型】的更多相关文章

model/view 模型将数据与视图分割开来,也就是说,我们可以为不同的视图,QListView.QTableView和QTreeView提供一个数据模型,这样我们可以从不同角度来展示数据的方方面面.但是,面对变化万千的需求,Qt 预定义的几个模型是远远不能满足需要的.因此,我们还必须自定义模型. 类似QAbstractView类之于自定义视图,QAbstractItemModel 为自定义模型提供了一个足够灵活的接口.它能够支持数据源的层次结构,能够对数据进行增删改操作,还能够支持拖放.不过…
Home / Qt 学习之路 2 / Qt 学习之路 2(10):对象模型 Qt 学习之路 2(10):对象模型  豆子  2012年9月2日  Qt 学习之路 2  45条评论 标准 C++ 对象模型在运行时效率方面卓有成效,但是在某些特定问题域下的静态特性就显得捉襟见肘.GUI 界面需要同时具有运行时的效率以及更高级别的灵活性.为了解决这一问题,Qt “扩展”了标准 C++.所谓“扩展”,实际是在使用标准 C++ 编译器编译 Qt 源程序之前,Qt 先使用一个叫做 moc(Meta Obje…
Home / Qt 学习之路 2 / Qt 学习之路 2(45):模型 Qt 学习之路 2(45):模型  豆子  2013年2月26日  Qt 学习之路 2  23条评论 在前面两章的基础之上,我们将开始介绍 model 的通用概念. 在 model/view 架构中,model 提供一种标准接口,供视图和委托访问数据.在 Qt 中,这个接口由QAbstractItemModel类进行定义.不管底层数据是如何存储的,只要是QAbstractItemModel的子类,都提供一种表格形式的层次结构…
Qt 学习之路 2(51):布尔表达式树模型 豆子 2013年5月15日 Qt 学习之路 2 17条评论 本章将会是自定义模型的最后一部分.原本打算结束这部分内容,不过实在不忍心放弃这个示例.来自于 C++ GUI Programming with Qt 4, 2nd Edition 这本书的布尔表达式树模型的示例相当精彩,复杂而又不失实用性,所以我们还是以这个例子结束这部分内容. 这个例子是将布尔表达式分析成一棵树.这个分析过程在离散数学中经常遇到,特别是复杂的布尔表达式.类似的分析方法可以套…
Qt 学习之路 2(56):使用模型操作数据库 (okgogo: skip) 豆子 2013年6月20日 Qt 学习之路 2 13条评论 前一章我们使用 SQL 语句完成了对数据库的常规操作,包括简单的 CREATE.SELECT 等语句的使用.我们也提到过,Qt 不仅提供了这种使用 SQL 语句的方式,还提供了一种基于模型的更高级的处理方式.这种基于QSqlTableModel 的模型处理更为高级,如果对 SQL 语句不熟悉,并且不需要很多复杂的查询,这种QSqlTableModel模型基本可…
Home / Qt 学习之路 2 / Qt 学习之路 2(50):自定义可编辑模型 Qt 学习之路 2(50):自定义可编辑模型 豆子 2013年5月13日 Qt 学习之路 2 13条评论 上一章我们了解了如何自定义只读模型.顾名思义,只读模型只能够用于展示只读数据,用户不能对其进行修改.如果允许用户修改数据,则应该提供可编辑的模型.可编辑模型与只读模型非常相似,至少在展示数据方面几乎是完全一样的,所不同的是可编辑模型需要提供用户编辑数据后,应当如何将数据保存到实际存储值中. 我们还是利用上一章…
Qt 学习之路 2(49):自定义只读模型 豆子 2013年5月5日 Qt 学习之路 2 18条评论 model/view 模型将数据与视图分割开来,也就是说,我们可以为不同的视图,QListView.QTableView和QTreeView提供一个数据模型,这样我们可以从不同角度来展示数据的方方面面.但是,面对变化万千的需求,Qt 预定义的几个模型是远远不能满足需要的.因此,我们还必须自定义模型. 类似QAbstractView类之于自定义视图,QAbstractItemModel 为自定义模…
Qt 学习之路 2(71):线程简介 豆子 2013年11月18日 Qt 学习之路 2 30条评论 前面我们讨论了有关进程以及进程间通讯的相关问题,现在我们开始讨论线程.事实上,现代的程序中,使用线程的概率应该大于进程.特别是在多核时代,随着 CPU 主频的提升,受制于发热量的限制,CPU 散热问题已经进入瓶颈,另辟蹊径地提高程序运行效率就是使用线程,充分利用多核的优势.有关线程和进程的区别已经超出了本章的范畴,我们简单提一句,一个进程可以有一个或更多线程同时运行.线程可以看做是“轻量级进程”,…
Qt 学习之路 2(67):访问网络(3) 豆子 2013年11月5日 Qt 学习之路 2 16条评论 上一章我们了解了如何使用我们设计的NetWorker类实现我们所需要的网络操作.本章我们将继续完善前面介绍的天气程序. 注意到我们在WeatherDetail类中有一个icon属性.到现在为止我们还没有用到这个属性.下面我们考虑如何修改我们的程序. 通过查看 OpenWeatherMap 的相关 API 我们可以发现,当我们查询天气时会附带这么一个 icon 属性.这个属性其实是网站上的一个天…
Home / Qt 学习之路 2 / Qt 学习之路 2(66):访问网络(2) Qt 学习之路 2(66):访问网络(2)  豆子  2013年10月31日  Qt 学习之路 2  27条评论 上一章我们了解了NetWorker类的简单实现.不仅如此,我们还提到了几个 C++ 开发时常用的设计模式.这些在接下来得代码中依然会用到. 现在我们先来研究下 OpenWeatherMap 的相关 API.之所以选择 OpenWeatherMap,主要是因为这个网站提供了简洁的 API 接口,非常适合示…