# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt import * from PyQt4 import QtGui, QtCore from PyQt4.QtCore import * import sys # MVC是Model-View-Controller的简写,即模型-视图-控制器 #model/view框架将传统的mv模型分…
# -*- coding: utf-8 -*- # python:2.x #说明:QTreeWidget用于展示树型结构,也就是层次结构同前面说的 QListWidget 类似,这个类需要同另外一个辅助类 # QTreeWidgetItem 一起使用.不过,既然是提供方面的封装类,即便是看上去很复杂的树, # 在使用这个类的时候也是显得比较简单的 __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt impor…
# -*- coding: utf-8 -*- # python:2.x #说明:QTreeWidget用于展示树型结构,也就是层次结构同前面说的 QListWidget 类似,这个类需要同另外一个辅助类 # QTreeWidgetItem 一起使用.不过,既然是提供方面的封装类,即便是看上去很复杂的树, # 在使用这个类的时候也是显得比较简单的 __author__ = 'Administrator' from PyQt4.QtGui import  * from PyQt4.Qt impor…
# -*- coding: utf-8 -*- # python:2.x #QFileSystemModel """ Qt  内置了两种模型:QStandardItemModel 和 QFileSystemModel .QStandardItemModel 是一种多用途的模型,能够让列表.表格. 树等视图显示不同的数据结构.这种模型会将数据保存起来.试想一下, 列表和表格所要求 的数据结构肯定是不一样的:前者是一维的,后者是二维的.因此,模型需要保存有实际数 据,当视图是列表…
# -*- coding: utf-8 -*- # python:2.x #QStringListModel #QStringListModel 是最简单的模型类,具备向视图提供字符串数据的能力. #QStringListModel 是一个可编辑的模型,可以为组件提供一系列字符串作为数据. #看作是封装了 QStringList 的模型.QStringList 是一种很常用的数据类型,实际上 #是一个字符串列表(也就是 QList<QString>).既然是列表,它也就是线性的数据结构, #因…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 列表部件(List Widget)对应类QListWidget,是从QListView派生的类,用于显示一些数据的列表,不支持多层级数据的显示.QListWidget显示的数据项都通过QListWidgetItem构建. QListWidget是一个便利类,它提供了一个类似于QListView提供的列表视图,具有一个用于添加和删除项的接口.QListWidget使用一个内部模型来管理列表…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关系.由该体系架构引入的功能分离使得开发人员能够更灵活地定制展现数据项的呈现方式,并提供标准模型接口支持广泛的数据源与预定义好的项视图(item views)一起使用. 二.Model/View架构概述 2.1.引言 模型-视图-控制器(Model-View-Controller,简称MVC)是一种源…
老猿Python博文目录 老猿Python博客地址 一.概述 在PyQt图形界面中,支持采用Model/View架构实现数据和界面逻辑分离,其中Model用于处理数据存储,View用于界面数据展现,当Model中的数据变化后对应界面视图自动更新,反之当View中数据进行修改之后,也支持通知Model进行数据调整. 为了快速支持Model/View架构,PyQt提供了一系列类来支持,在Qt Designer中Item Views部件栏的视图部件都是用于Model/View架构的View部件,涉及相…
Qt 学习之路 2(41):model/view 架构 豆子 2013年1月23日 Qt 学习之路 2 50条评论 有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应用程序的界面中.早期的 Qt 要实现这个功能,需要定义一个组件,在这个组件中保存一个数据对象,比如一个列表.我们对这个列表进行查找.插入等的操作,或者把修改的地方写回,然后刷新组件进行显示.这个思路很简单,也很清晰,但是对于大型程序,这种设计就显得苍白无力.比如,在一个大型系统中,你的数据可能很大,…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 QListView理论上可以和所有QAbstractItemModel派生的类如QStringListModel.QDirModel.QFileSystemModel.QStandardItemModel等对接,但QListView实际上能展示的数据仅一列,对于复杂的树形层次使用Model使用QListView来展现意义不大.本节通过几个简单代码案例来阐述QListView/Model开…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 模型-视图-控制器(Model-View-Controller,简称MVC)是一种源于Smalltalk在构建用户界面时 广泛使用的设计模式.在<Design Patterns>一书中,Gamma等人这样描述到:"MVC由三种对象组成.模型Model是应用程序对象,视图View是其屏幕表示,控制器Controller定义用户界面对用户输入的反应方式.在MVC之前,用户界面设计…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 Model/View架构中的Model模型Model与数据源通信,为体系结构中的其他组件提供数据接口.与数据源通信的方式取决于数据源的类型(如文件.数据库.消息等)以及模型的实现方式.由于模型中的数据都是以项(item)为单位进行管理,所以Model模型又称为项模型(item models ). 所有项模型(item models )类都是从基类QAbstractItemModel 类及其子类派生…
老猿Python博文目录 老猿Python博客地址 一.概述 QStandardItemModel是QAbstractItemModel的派生类,用于在Model/View架构中存储自定义数据的通用模型,可以用于在任何支持QAbstractItemModel接口的view(例如QListView.QTableView和QTreeView,以及自定义视图)中作为数据存储. QStandardItemModel可以用作标准Qt数据类型的数据存储Model.QStandardItemModel提供了一…
http://doc.trolltech.com/main-snapshot/model-view-programming.html 介绍 Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系.这种结构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的数据源可以被这些item view使用.这里对model/view的结构进行了描述,结构中的每个组件都进行了解释,给出了一些例子说明了提供的这些类…
老猿Python博文目录 老猿Python博客地址 引言:本章早就写好了,其简版<第15.18节 PyQt(Python+Qt)入门学习:Model/View架构中视图Item Views父类详解>也发布好多天了,而迟迟未发布的原因是有个属性dragDropOverwriteMode验证中发现与官网介绍不一致,不过今天这个问题已经找到原因,因此更新发布. 一.概述 在PyQt图形界面中,支持采用Model/View架构实现数据和界面逻辑分离,其中Model用于处理数据存储,View用于界面数据…
Qt Model/View模式简介 Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系.这种结构带来的 功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的 数据源可以被这些item view使用.这里对model/view的结构进行了描述,结构中的每个组件都进行了解释, 给出了一些例子说明了提供的这些类如何使用. Model/View  结构 Model-View-Controller(MVC),…
(一) Qt Model/View 的简单说明 .预定义模型 (二)使用预定义模型 QstringListModel例子 (三)使用预定义模型QDirModel的例子 (四)Qt实现自定义模型基于QAbstractTableModel (五)Qt实现自定义模型基于QAbstractItemModel (六) Qt实现自定义委托 QDelegate (一)使用Qt Model/View的好处 1.利用 Qt 的模型 / 视图架构,我们可以只从模型中获取实际在视图中显示所需要的数据.这样在处理非常大…
目录: (一) Qt Model/View 的简单说明 .预定义模型 (二)使用预定义模型 QstringListModel例子 (三)使用预定义模型QDirModel的例子 (四)Qt实现自定义模型基于QAbstractTableModel (五)Qt实现自定义模型基于QAbstractItemModel (六) Qt实现自定义委托 QDelegate (一)使用Qt Model/View的好处 1.利用 Qt 的模型 / 视图架构,我们可以只从模型中获取实际在视图中显示所需要的数据.这样在处…
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与底层存储数据项的数据结构完全不同. 内容与显式的分离是通过由QAbstractItemModel提供的标准模型接口,由QAsbstractItemview提供的标准视图接口共同实现的.普遍使用model index来表示数据项.view负责管理从model中读取的数据的外观布局. 它们自己可以去渲染…
Introduction to Model/View Programming       QT4 介绍了一系列新的 Item View 类,这些类使用Model/View结构来管理数据和数据如何呈现给用户.这种结构使程序员更加灵活的开发和定制呈现数据界面,Model/View结构提供标准的Model接口让各种数据资源都能够被存在的Item View使用.   The model/view architecture       MVC是一种源于 smalltalk的设计模式,经常用来构建应用程序界…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关系.由该体系架构引入的功能分离使得开发人员能够更灵活地定制展现数据项的呈现方式,并提供标准模型接口支持广泛的数据源与预定义好的项视图(item views)一起使用. 二.Model/View架构概述 2.1.引言 模型-视图-控制器(Model-View-Controller,简称MVC)是一种源…
Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也处理用户的输入.为了获得更多的灵性性,交互通过delegagte执行.它既提供输入功能又负责渲染view中的每个数据项. 控制delegates的标准接口在QAbstractItemDelegate类中定义.Delegates通过实现paint()和sizeHint()以达到渲染内容的目的.然而,简…
在views中选择数据项 概念 用于新的view类中的选择模型比Qt3中的模型有了很大的改进.它为基于model/view架构的选择提供了更为全面的描述.尽管对提供了的views来说,负责操纵选择的标准类已经足以应付,但是你也可以创建特定的选择模型来满足你特殊的需求. 关于在view被选择的数据项的信息保持在QItemSelectionModel类的实例中.它也为每个独立的model中的数据项维护model indexes信息,与任何views都关联关系.既然一个model可用于多个views,…
Qt Model/View模式举例 Qt提供了两个标准的models:QStandardItemModel和QDirModel.QStandardItemModel是一个多用途的model,可用于表示list,table,tree views所需要的各种不同的数据结构.这个model也持有数据.QDirModel维护相关的目录内容的信息,它本身不持有数据,仅是对本地文件系统中的文件与目录的描述.QDirModel是一个现成的model,很容易进行配置以用于现存的数据,使用这个model,可以很好…
Qt Model/View理解(一)---构造model https://blog.csdn.net/weixin_42303052/article/details/89233887 Qt Model/View理解(三)---桥梁Delegate https://blog.csdn.net/lutao614/article/details/80881800 Qt Model/View理解(四)---实战 https://blog.csdn.net/lutao614/article/details…
不同于MVC模式,Model/View设计并不包含用于处理与用户交互的完全独立的部件, 没有将用户交互部分完全分离.一般地,视图负责把模型数据显示给用户,以及处理用户的输入.但是,对于某些特殊要求(比如要求必须输入数字),则交予Delegate(委托)完成. Delegate(委托)组件提供输入功能,同时也能渲染某些特殊数据项.Delegate(委托)就是供视图实现某种高级的编辑功能,在视图中提供输入功能,同时负责传递视图中的单个项.可以说Delegate(委托)是PyQt Model/View…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Model/View体系架构中,有两种方法可以进行排序:选择哪种方法取决于底层模型. 如果模型是可排序的,即模型类实现了QAbstractItemModel.sort()函数,如QTableView和QTreeView都提供一个API,允许以编程方式对模型数据进行排序.此外,还可以通过将QHeaderView.sortIndicatorChanged()信号连接到QTableView…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 表格部件为应用程序提供标准的表格显示工具,在表格内可以管理基于行和列的数据项,表格中的最大数据项数为总行数和总列数的乘积,另外在表格中可以设置水平和垂直标题. 表格部件对应类为QTableWidget ,QTableWidget 表格部件中的项类型为QTableWidgetItem类.QTableWidget 从QTableView派生的子类,内置默认模型,如果表格展现的应用需要使用自己…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 树部件(Tree Widget)是Qt Designer中 Item Widgets(Item-Based)部件中提供的一个Model/View便利部件,对应类为QTreeWidget类. QTreeWidget类从QTreeView派生(继承关系请参考<PyQt学习随笔:Qt中Model/View相关的主要类及继承关系>),是一个Model/View便利类,提供一个树状管理数据的界面…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Designer的部件栏Item Views中提供了PyQt和Qt已经实现好的table View(表视图)部件,table View对应的类为QTableView,QTableView类提供表视图的默认Model/View实现.这儿的所说的表视图老猿理解为类似通过行和列定位数据的表格形式的数据展现方式. QTableView是PyQt和Qt提供的一种表视图的实现,用于显示存储在Mod…