适配者模式-Qt Model的转接
来源:互联网 发布:cf免费刷火麒麟软件 编辑:程序博客网 时间:2024/06/06 00:29
在Qt中,通过写model, 让TableView呈现不同的样式。有时候会遇到比较蛋疼的局面。之前写的一个Model很适合,但是不支树形显示。现在的需求就是要显示树形,其它的跟之前的一样。这种情况下,是重写一个呢,还是想想别的办法。
有两种思路可以考虑,一个是派生,一个是适配。派生的一个Model,并要显示树形的话,很难实现,毕竟要重写index, parent等方法。用适配的方式来实现则相对容易实现。
在计算机编程中,适配器模式(有时候也称为包装样式或包装),将一个类的接口适配成用户需要的接口,一个适配允许通常因为接口不一致而不能正常在一起工作的类在一起。
思路如下:
1)定义一个Model, 内部有一个成员是TestModel(适配的model)。构造的同时,构造成员。
2)定义一个数据结构Node。用于构造树形。数据结构的成员设计上要倾向于好转换。如可以在树形结构构造的时候,有一个成员专门用于记录它是第几个(在平的情况下)。
3)QModelIndex dataIndex(QModelIndex index) const;这个方法用于index的转换。执行适配。
4)data, setData等方法里先通过dataindex转换一下。取值调成员TestModel的data,setData等方法。
思路很简单,主要是觉得这个跟适配者模式很像,而且很方便的能实现不同的model之间的转换或组合。
同样的思路还可以通过一个model, 内部组合多个model的方式来实现比较复杂的功能。如打开另存框左侧显示本地文件还有其它的一些东西的,可 以参考这样的实现。本地文件用Qt自带的fileModel就可以,如果还想显示别的东西,就可以通过一个model, 把两个或多个model组合起来。这是不是又是另外一种设计模式呢?
0 0
- 适配者模式-Qt Model的转接
- Qt的Model/View
- Qt 的Model/View
- Qt的model/view
- Qt中model/view设计模式
- QT实现模式对话框(Model)
- Qt的Model/View (二)
- QT的model-view机制
- (转)Qt Model/View 学习笔记 (一)——Qt Model/View模式简介
- Qt Model/View 学习笔记 (二)——Qt Model/View模式举例
- 电话转接的注意事项
- usb转接的方法
- ULIINK2的转接问题
- Qt的Model/View Framework解析
- qt model和view的table 小记
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt Model/View 的简单说明
- 那匆匆2014年,明明想静静
- 南阳理工 274 正三角形的外接圆面积
- 浅析列式数据库的特点
- tomcat7.0中外置的Context配置
- leetcode难度及面试频率
- 适配者模式-Qt Model的转接
- ActionContext(Struts中的Action类里)和ServletActionContext(HttpServlet类里的)【区别】小结
- centos 安装pcre
- 学车与编程
- HDU - 1301 - Jungle Roads (最小生成树!!prim算法!!)
- Redis入门
- Android Studio安装、配置
- Shell变量类型
- 加州理工学院公开课:机器学习与数据挖掘_Kernal Method(第十五课)