qt4 Model/View编程:2 使用模式和视图

翻译 2007年10月11日 12:50:00
使用模式和视图
 
本节结构:
       概述
       和现有的模式一起使用视图
 
·概述
QT提供了两个标准的模式分别是QStandardItemModel和QDirModel。QStandardItemModel是一个多种用途的模式,可用于表示适用于列表、表格和树视图的多种不同数据结构。这种模式保持数据的物件。QDirModel是一个维护目录内容信息的模式。所以,它本身不保持任何物件,而是仅仅简单的代表本地文件系统的文件和目录。
QDirModel提供了一个准备模式,以备试验,而且很容易配置来使用已经存在的数据。使用这个模式,我们可用展示怎么配置模式和制作好的视图,和演示怎样使用索引控制数据。
 
·和现有的模式一起使用视图
QListView和QTreeView类是最适合与QDirModel一起使用的视图。下面的例子显示的是同一个目录内容在挨着的树视图和列表视图中的效果。视图共享用户的选择操作,所以被选择的条目在两个视图中都高亮。

 
我们设置一个QDirModel,这样就可用用了,创建一些视图就可以显示目录的内容。该例子展现的是使用模式的最简单方式。在一个main()函数中构造和使用模式:
 
int   main( int argc, char* argv[] )
{
       QApplication app( argc,argv );
       QSplitter* splitter   = new QSplitter;
 
       QDirModel* model       = new QDirModel;
 
视图的创建和其他widget创建的方式相同。配置视图来显示模式中的条目简单到只需以文件夹模式为参数调用他的setModel()函数。函数调用setRootIndex()告诉视图要显示那个文件夹,参数需要提供一个从文件夹模式获取到的模式索引。
本例中的函数index()是QDirModel中唯一的;我们给它一个文件夹,它返回一个模式索引。模式索引将在“Model Classes”一节中讨论。
这个函数剩余的就是在一个分割器widget中显示视图,然后运行应用程序的事件循环。

       splitter->setWindowTitle( “Two views onto the same directory model” );

       splitter->show();
       return app.exec();
}
 
在上面的例子中,我们忽略了怎样控制条目的选择。这个课题将在节“Handling Selectings in Item Views”中详细说明。在测试如何控制选择之前,你将发现阅读章节“Model Classes”是非常实用的,它描述了在Model/View框架中使用的概念。
 

Qt中model/view设计模式

Qt Model/View 学习笔记 (一) Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的 功能...
  • u013923131
  • u013923131
  • 2014年10月10日 15:36
  • 3178

用QT的model/view/delegate接口实现自定义的窗口渲染

欢迎提出意见,因为本就是为交流而分享。 qt的model接口(qabstractItemModel)管理的数据抽象来说是节点树,最顶层的根节点可以有N行M列个子item,而每个item又可以有自己...
  • upnow2014
  • upnow2014
  • 2015年03月15日 17:12
  • 1404

模型-视图-控制器(Model-View-Controller,MVC)

模型-视图-控制器(Model-View-Controller,MVC)是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已广泛应用于用户交互应用程...
  • li_yangyang_li
  • li_yangyang_li
  • 2016年02月14日 09:55
  • 3366

oracle 视图(view)的使用

Oracle对象教程:视图(View)创建使用,视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。只需要简单的SELECT…FROM...
  • weixin_39415084
  • weixin_39415084
  • 2017年07月26日 15:24
  • 6705

强类型视图中提交表单,把View中的Model数据传递给Controller

若要实现强类型视图中提交表单,把View中的Model数据传递给Control,那么必须要确保一件事——表单中的input标签元素的name属性的值必须与model中的属性名相同,不区分大小写。 示例...
  • wangzl1163
  • wangzl1163
  • 2016年09月09日 11:20
  • 1526

浅谈MVP与Model-View-ViewModel(MVVM)设计模式

http://xiaoyinnet.blog.51cto.com/909896/196071 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法...
  • lvjin110
  • lvjin110
  • 2014年05月14日 21:45
  • 1004

ym——Android开发MVP模式(解决了View和Model的耦合)

1、模型与视图完全分离,我们可以修改视图而不影响模型 2、可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部 3、我们可以将一个Presenter用于多个视图,而不需要改变...
  • cym492224103
  • cym492224103
  • 2014年08月23日 11:00
  • 10205

《Qt编程的艺术》——8.1model/view结构的底层概念

model/view结构基于一个概念——将数据与现实分离。这样做,一份数据可以容易地在不同窗口里面展示,展示的形式可以通过list或者table。这样,数据源理论上不关心view如何现实它,view也...
  • maxiee
  • maxiee
  • 2013年08月17日 13:36
  • 746

Qt学习笔记-----Model/View架构之自定义Model

Model/View Framework中提供了模型model的抽象基类QAbstractItemModel, 如果需要自定义模型就需要继承这个类并且实现一些必要的函数。 此外,Qt中又提供了QAb...
  • sinat_35261315
  • sinat_35261315
  • 2017年02月03日 21:19
  • 1918

QT——模型/视图(model/view)

数据项中引入模型/视图架构,可以方便的将数据与表现层分开。 ------------------------------------- 为每个视图都提供了一个默认的委托——可以使用自定义的委托来替换显...
  • u012627502
  • u012627502
  • 2014年06月29日 01:28
  • 4454
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:qt4 Model/View编程:2 使用模式和视图
举报原因:
原因补充:

(最多只允许输入30个字)