Qt基于model/view数据库编程3】的更多相关文章

Qt中数据编程主要分为以下两点:1.利用qt提供类 访问数据库或者成为简单的数据库编程2.数据库编程中引入model/view编程模型 基于model/view数据库编程: qt提供model类: QSqlTableModel类 QSqlQueryModel类Qt提供view类: QTableView 需要掌握两个知识: (1)model/view编程步骤 (2)qt数据库编程步骤 案例:通过界面view控件实现对数据库中的一张表(姓名.年龄.成绩)中记录进行操作 (1)放置一个view控件 Q…
QSqlQueryModel和QSqlQuery类: 工程开发过程中将这两个类合起来使用,用QSqlQueryModel查询展示数据库中的数据,用QSqlQuery类执行sql语言,实现对数据库的操作. 案例:数据库中有一张表,存储学员姓名.年龄.成绩和照片.通过一个图形界面实现对学员信息 的浏览.修改和编辑,其中照片的字段类型是blob类型,界面上通过label显示照片 信息. 各个文件代码如下:widget.h内容 #ifndef WIDGET_H#define WIDGET_H #incl…
最近在看Qt的Model/View Framework,在网上搜了搜,好像中文的除了几篇翻译没有什么有价值的文章.E文的除了Qt的官方介绍,其它文章也很少.看到一个老外在blog中写道Model/View是他认为Qt中最不好的一部分了.真的是这样吗?为了回馈开源社区,我写了这篇blog,写的是我认为比较有价值的东东.题目起得是解析,但也没有特别细节的介绍,点到为止,有兴趣的Tx可以继续讨论.我所看的资料有<C++ GUI Programming with Qt 4, Second Edition…
Qt中Model/View中的Model Index是一个类,该类用于定位Model/View中数据模型中的数据. Model Index是从QAbstractItemModel派生的子类,用于在项视图( item views).委托(delegates)和选择模型( selection models)使用来定位Model中的数据项(delegates相当于MVC中的C,用于在视图中处理用户的输入,输入可以通过调用model的setData函数保存到真正的数据中). 模型索引引用模型中的数据项,…
老猿Python博文目录 老猿Python博客地址 在<PyQt学习随笔:Qt中Model/View相关的主要类及继承关系>介绍了Model/View架构的主要类,在实际使用时,view相关类的对象在Qt Designer中可以直接构建,但Model相关类的对象必须代码实现,那么怎么去构造Model相关的对象与View匹配呢? 其实Model构建的方法与View类别相关,但View类别并不是唯一确认Model构建方法的要素,还要看View中数据的内容.一般来说: 如果是多行单列的字符数据,可以…
基于Qt网络编程: 基于tcp协议 c/s模式编程 所需要的类:QTcpServer QTcpSocket 利用qt基于tcp协议编写c/s模式程序: 两个类中的信号: QTcpServer : newConnection() QTcpSocket: readyRead() connected() disconnected() 服务器端程序步骤:QTcpServer QTcpSocket 1..h中声明一个监听套接字和通信套接字 .cpp构造函数中: 实例化监听套接字 2.处于监听状态 3.绑定…
HTTP(超文本传输协议 Hyper Text Transfer Protocol) 基于TCP/IP通信协议,属于应用层协议. 使用情况: HTTP是无连接(无连接的含义是限制每次连接只处理一个请求) HTTP是媒体独立的(只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送) HTTP是无状态协议(无状态是指协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息) 工作原理: HTTP协议工作于客户端-服务端架构上. HTTP客户端(浏览器)通过UR…
TCP(传输控制协议 Transmission Control Protocol) 可靠.面向数据流.面向连接  的传输协议.(许多应用层协议都是以它为基础:HTTP.FTP) 使用情况: 相比UDP无连接,TCP是面向连接 相比UDP不可靠,TCP是可靠传输 相比UDP不提供流量控制,TCP是提供 相比UDP适用少量数据传输,TCP是大量数据 相比UDP速度快,TCP是慢 适用:对可靠性要求高的数据通信系统. 工作原理: TCP客户端与服务器在正式发送数据前,双方需要经过三次握手后建立连接.…
UDP(用户数据报协议 User Data Protocol) 轻量级.不可靠.面向数据报.无连接  的传输层协议. 适用情况: 网络数据大多为短消息: 拥有大量客户端: 对数据安全无特殊要求: 网络负担非常重,但对响应速度要求高. 工作原理: UDP客户端与服务器之间通过一定长度报文相互请求和响应: 报文大小的限制与各系统的协议实现有关,但不得超过其下层IP协议规定的64KB: 如果服务器未收到请求,客户端不会重发,所以是不可靠的. UDP服务器编程5步: 1.创建socket套接字 2.设置…
View相关类类继承关系: Model相关类类继承关系:…
http://doc.trolltech.com/main-snapshot/model-view-programming.html 介绍 Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系.这种结构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的数据源可以被这些item view使用.这里对model/view的结构进行了描述,结构中的每个组件都进行了解释,给出了一些例子说明了提供的这些类…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关系.由该体系架构引入的功能分离使得开发人员能够更灵活地定制展现数据项的呈现方式,并提供标准模型接口支持广泛的数据源与预定义好的项视图(item views)一起使用. 二.Model/View架构概述 2.1.引言 模型-视图-控制器(Model-View-Controller,简称MVC)是一种源…
Model/View(模型/视图)结构是 Qt 中用界面组件显示与编辑数据的一种结构,视图(View)是显示和编辑数据的界面组件,模型(Model)是视图与原始数据之间的接口. GUI 应用程序的一个很重要的功能是由用户在界面上编辑和修改数据,典型的如数据库应用程序.数据库应用程序中,用户在界面上执行各种操作,实际上是修改了界面组件所关联的数据库内的数据. 将界面组件与所编辑的数据分离开来,又通过数据源的方式连接起来,是处理界面与数据的一种较好的方式.Qt 使用 Model/View 结构来处理…
老猿Python博文目录 老猿Python博客地址 一.概述 QStandardItemModel是QAbstractItemModel的派生类,用于在Model/View架构中存储自定义数据的通用模型,可以用于在任何支持QAbstractItemModel接口的view(例如QListView.QTableView和QTreeView,以及自定义视图)中作为数据存储. QStandardItemModel可以用作标准Qt数据类型的数据存储Model.QStandardItemModel提供了一…
在views中选择数据项 概念 用于新的view类中的选择模型比Qt3中的模型有了很大的改进.它为基于model/view架构的选择提供了更为全面的描述.尽管对提供了的views来说,负责操纵选择的标准类已经足以应付,但是你也可以创建特定的选择模型来满足你特殊的需求. 关于在view被选择的数据项的信息保持在QItemSelectionModel类的实例中.它也为每个独立的model中的数据项维护model indexes信息,与任何views都关联关系.既然一个model可用于多个views,…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 树部件(Tree Widget)是Qt Designer中 Item Widgets(Item-Based)部件中提供的一个Model/View便利部件,对应类为QTreeWidget类. QTreeWidget类从QTreeView派生(继承关系请参考<PyQt学习随笔:Qt中Model/View相关的主要类及继承关系>),是一个Model/View便利类,提供一个树状管理数据的界面…
Undo/Redo for Qt Tree Model eryar@163.com Abstract. Qt contains a set of item view classes that use a model/view architecture to manage the relationship between data and the way it is presented to the user. The separation of functionality introduced…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 树部件(Tree Widget)是Qt Designer中 Item Widgets(Item-Based)部件中提供的一个Model/View便利部件,对应类为QTreeWidget类. QTreeWidget类从QTreeView派生(继承关系请参考<PyQt学习随笔:Qt中Model/View相关的主要类及继承关系>),是一个Model/View便利类,提供一个树状管理数据的界面…
项目中表格需要显示5万条数据以上,并且实时刷新.开始使用的tableWidget,数据量一大显得力不从心,所以使用Qt的Model/View来重新实现.下面是更改之前编写的小Demo. import sys from untitled import Ui_Form from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtCore import Qt, QAbstractTableModel, QModelIndex, QVar…
Qt Model/View模式简介 Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系.这种结构带来的 功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的 数据源可以被这些item view使用.这里对model/view的结构进行了描述,结构中的每个组件都进行了解释, 给出了一些例子说明了提供的这些类如何使用. Model/View  结构 Model-View-Controller(MVC),…
Model-View及Qt实现 Model-View-Controller架构最早出现在SmallTalk语言中,至今出现了很多变体. Model是负责维护数据(如管理数据库),View负责显示与用户交互(如各种界面),Controller将控制业务逻辑.这种分层的做法在大型程序中使得数据.逻辑与界面分离,便于维护更新. Qt引入了与MVC架构相似的模式Model-View架构,并加入了代理(delegate),用于自定义数据的编辑和渲染. 因为架构中的Model以表格的抽象方式访问数据,事实上…
Qt中数据编程主要分为以下两点:1.利用qt提供类 访问数据库或者成为简单的数据库编程2.数据库编程中引入model/view编程模型 qt中数据库编程的步骤: 1.加载数据库驱动 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 2.连接指定数据库并打开 db.setDatabaseName("/home/hua/students.db"); db.open() 3.组织sql语句,执行sql语句,内存…
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博客地址 一.概述 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之前,用户界面设计…
Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也处理用户的输入.为了获得更多的灵性性,交互通过delegagte执行.它既提供输入功能又负责渲染view中的每个数据项. 控制delegates的标准接口在QAbstractItemDelegate类中定义.Delegates通过实现paint()和sizeHint()以达到渲染内容的目的.然而,简…
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与底层存储数据项的数据结构完全不同. 内容与显式的分离是通过由QAbstractItemModel提供的标准模型接口,由QAsbstractItemview提供的标准视图接口共同实现的.普遍使用model index来表示数据项.view负责管理从model中读取的数据的外观布局. 它们自己可以去渲染…
创建新的Models 介绍 model/view组件之间功能的分离,允许创建model利用现成的views.这也可以使用标准的功能 图形用户接口组件像QListView,QTableView和QTreeView来显示来自各种数据源的数据为. QAbstractListModel类提供了非常灵活的接口,允许数据源以层次结构的形式来管理信息,也允许以某种 方式对数据进行插入.删除.修改和存储.它也提供了对拖拽操作的支持. QAbstractListModel与QAbstractTableModel为…
# -*- 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模型分…
(一) Qt Model/View 的简单说明 .预定义模型 (二)使用预定义模型 QstringListModel例子 (三)使用预定义模型QDirModel的例子 (四)Qt实现自定义模型基于QAbstractTableModel (五)Qt实现自定义模型基于QAbstractItemModel (六) Qt实现自定义委托 QDelegate (一)使用Qt Model/View的好处 1.利用 Qt 的模型 / 视图架构,我们可以只从模型中获取实际在视图中显示所需要的数据.这样在处理非常大…