`
qimo601
  • 浏览: 3445861 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

(一) Qt Model/View 的简单说明

    博客分类:
  • Qt
阅读更多

目录:

(一) Qt Model/View 的简单说明 、预定义模型

(二)使用预定义模型 QstringListModel例子

(三)使用预定义模型QDirModel的例子

(四)Qt实现自定义模型基于QAbstractTableModel

(五)Qt实现自定义模型基于QAbstractItemModel 

(六) Qt实现自定义委托 QDelegate

 

(一)使用Qt Model/View的好处  

 

    1、利用 Qt 的模型 / 视图架构,我们可以只从模型中获取实际在视图中显示所需要的数据。这样在处理非常大的数据集的时候,可以更加快速,而不至于降低性能。通过把一个模型注册到两个或多个视图,就可以让用户使用不同的方式查看数据以及和数据交互。 Qt 对于多个视图会自动保持同步,从而使对一个视图的改变会影响到全部视图。

    2、模型 / 视图架构的另外一个好处是:如果决定改变底层数据集的存储方式,只需要修改模型,而视图仍能够继续正常工作。

 

  

(二)预定义模型 

 

 

 

 

     为了充分使用Qt 模型 / 视图的好处,我们不想再采取 Qt 以前版本中的项视图简便类 QListWidget QTableWidget QTreeWidget。它们需要读取要被设置到一个项视图窗口部件中的所有数据、使用项对象呈现数据元素并且回写数据源。

 

    Qt4使用预定义模型 划线的是Qt4.7 中已经不再推介的 Model

 

 

QStringListModel  

用于存储简单的字符串列表。

QStandardItemModel 

存储任意的分层次的数据,管理复杂的树型结构数据项,每项都可以包含任意数据。

QDirModel(最新版已经用QfileSystemModel代替这个类了)

封装本地文件系统

QSqlQueryModel

封装一个SQL数据集

QSqlTableModel

封装一个SQL

QSqlRelationTableModel

利用外键封装一个SQL

QSortFileterProxyModel

排序和/筛选另一个模型

假如这些标准Model不满足你的需要,你应该子类化QAbstractItemModel,QAbstractListModel或是QAbstractTableModel来定制。

 

 

 

(三)视图 

 

Qt中视图类的继承关系如下图

 

 

(三)委托Delegate

Qt中委托的继承关系见下图

 

 

分享到:
评论

相关推荐

    Qt Model/View Framework学习笔记

    Qt Model/View Framework 是 Qt 4 中引入的一组新的 item view 类,它们使用 model/view 结构来管理数据与表示层的关系。这种结构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示。 Model/View 结构是...

    Qt Model/View 学习笔记

    Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的 功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的 数据源可以被...

    Qt Model/View 文档中文翻译

    Qt 文档中 Model/View 部分的翻译。 由清源游民完成。 gameogre@gmail.com

    QT Model/View 编程官方教程实例

    按官方文档实现QT Model/View 编程,Qt包含一组项视图类,这些类使用模型/视图体系结构来管理数据和数据呈现给用户的方式之间的关系。该体系结构引入的功能分离为开发人员提供了更大的灵活性来定制项的表示,并提供...

    QT Model/View结构学习

    QT Model/View 结构是 Qt 框架中一个核心的设计模式,用于处理数据与用户界面之间的交互。这个模式提供了一种灵活的方式来显示和编辑数据,使得数据模型和视图可以独立开发,降低了耦合度,提高了代码的可重用性和可...

    Qt Model/View 实现Model类参考工程

    在Qt框架中,Model/View编程模式是一种强大的机制,用于处理数据展示和用户交互。它将数据模型(Model)与视图(View)和控制器(Controller)分离,使得数据的管理与界面显示相独立,提高了代码的可复用性和可维护...

    QT 学习笔记 Model/View结构

    Qt使用Model/View结构来处理这种关系,Model/View的基本结构如图 数据模型  所有的基于项数据(ItemData)的数据模型(Model)都是基于QAbstractItemModel类的,这个定义了视图组件和代理存取数据的接口。数据无线...

    Qt Model View 学习笔记.docx

    Qt Model/View是Qt框架中的一个核心概念,用于构建数据驱动的用户界面。这个体系结构源自经典的Model-View-Controller(MVC)设计模式,它将数据、显示和用户交互逻辑分离,使得代码更加模块化,易于维护和扩展。 ...

    Model/View实现表格和统计图

    在软件开发领域,尤其是图形用户界面(GUI)的设计中,Model/View架构是一种常见的设计模式,它将数据处理和用户界面展示分离,使得两者可以独立发展和维护。Qt框架是广泛应用的C++库,其中就提供了强大的Model/View...

    QT 基于View/Model/Delegate的QTableView/QTreewidget/QCombox

    总结来说,QT的View/Model/Delegate模式是一种强大的工具,它使数据驱动的UI设计变得简单而灵活。QTableView、QTreewidget和QComboBox是这一模式下的典型应用,通过模型的管理、视图的展示和委托的定制,我们可以...

    QT 自定义混合控件——基于View/Model/Delegate的QTableView/QTreewidget/Combobox实现

    在本项目"QT自定义混合控件——基于View/Model/Delegate的QTableView/QTreewidget/Combobox实现"中,我们将深入探讨如何利用QT库中的核心组件构建一个强大的数据展示和交互界面。 首先,我们要理解View/Model/...

    qt ModelView的应用

    在提供的"第7章 ModelView"压缩包文件中,可能包含了关于如何实现和应用Qt ModelView的示例代码、教程文档或讲解视频。通过学习这些资源,你可以深入了解如何在实际项目中有效地使用Model/View架构。 总结来说,Qt ...

    Qt Model View 学习笔记.pdf

    Qt Model/View 架构是Qt库中一种强大的设计模式,它源于经典的Model-View-Controller(MVC)模式,但简化为Model-View结构,适用于构建用户界面,特别是数据密集型的应用。这一架构的核心思想是将数据模型、视图显示...

    qt model view Delegate的例子

    Qt 模型视图委托(Model View Delegate)是Qt库中的一个重要组件,它在图形用户界面(GUI)开发中扮演着关键角色,特别是在数据展示和交互方面。模型视图架构是一种设计模式,它将数据(模型)与显示数据的方式...

    五、Qt Model与View.zip

    Qt框架中的Model/View体系是Qt GUI编程的核心部分,它为数据展示和操作提供了一种灵活且可扩展的架构。这个体系将数据模型(Model)与视图(View)分离,使得视图可以独立于数据模型变化而变化,同时允许多种不同的...

    qt中的model与view

    Qt中的Model/View框架是Qt库中用于构建用户界面的核心组件,尤其在处理列表、网格和树状数据结构时。这个框架遵循Model-View-Controller(MVC)设计模式,旨在将数据处理、用户界面展示和用户交互这三个关键部分分离...

    model/view基本的原始qt框架应用,QListWidget、QTreeWidget和QTableWidget

    现在我们从最简单的QListWidget、QTreeWidget和QTableWidget三个类开始了解最简单的 model/view 的使用。这部分内容的确很难组织。首先,从最标准的 model/view 开始,往往会纠结于复杂的代码

    Qt-Model-View-学习笔记.pdf

    Qt Model/View 架构是Qt库中一种强大的设计模式,用于分离数据的管理与视图的呈现。这种设计模式源自经典的Model-View-Controller(MVC)模式,但简化为Model-View结构,适用于GUI应用程序,特别是数据绑定和用户...

Global site tag (gtag.js) - Google Analytics