qt model/view 架构基础介绍之QListWidget
# -*- 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模型分:模型,视图,委托,每一个组件由一个抽象类定义,这个抽象类提供了基本的公共接口以及一些默认实现,通过信号槽进行交互
"""
1:来自模型信号通知视图,其底层维护数据发生改变
2:来自视力信号提供有关用户与界面进行交互信息
3:来自委托信号在用户编辑数据项时使用,用于告知模型和视图编辑器状态
所有模型都是QAbstractItemModel子类,这个类定义了供视图和委托访问数据接口,模型并不存储数据本身,
这意味着,可以将数据存储在一个数据结构中,另外的类中,文件中,数据库中,或者其他气相的地方 。
如果你需要为列表或者表格设计另外的模型,直接继承 QAbstractListModel和 QAbstractTableModel 类可能更好一些,因为这两个类已经实现了很多通用函数。
"""
#内置标准模型:
#QStringListModel:存储简单字符串列表
#QStandardItemModel:用于树结构存储,提供了层次数据
#QFileSystemModel:本地系统文件和目录信息
#QSqlQueryModel QSqlTableModel,QSqlRelationalTableModel:数据库存储数据
#当上面几个模型不满足需要时,可以使用QAbstractItemModel、QAbstractListModel 或者 QAbstractTableModel ,来创建自己的模型类
#还预定义一些视图:QListView 用于显示列表,Q TableView 用于显示表格,
# QTreeView 用于显示层次数据。这些类都是 QAbstractItemView 的子类。这意味
# 着,如果你要创建新的视图类,则可以继承 QAbstractItemView。
#QAbstractItemDelegate所有委托的抽象类,默认委托实现QStyledItemDelegate
#QStyledItemDelegate 和 QItemDelegate 都可以作为视图的编辑器,
# 二者的区别在于,QStyledItemDelegate 使用当前样式进行绘制。在实现自定义委托时,推荐使用 QStyledItemDelegate 作为基类,
# 或者结合 Qt style sheets。
如图:
class Painterd(QWidget):
def __init__(self):
super(Painterd,self).__init__()
self.vector()
def vector(self):
label=QLabel(self)
label.setFixedSize(300,200)
listwidget=QListWidget(self)
QListWidgetItem(QIcon(r'i/a.png'),u'图片1',listwidget)#QListWidgetItem 即可以有文本,也可以有图标。
QListWidgetItem(QIcon(r'i/b.png'),u'图片2',listwidget)
QListWidgetItem(QIcon(r'i/ab.png'),u'图片3',listwidget)
listwidget.addItem(QListWidgetItem(QIcon(r'i/a.png'),u'图片1'))
listwidget.addItem(QListWidgetItem(QIcon(r'i/b.png'),u'图片2'))
listwidget.addItem(QListWidgetItem(QIcon(r'i/ab.png'),u'图片3'))
newitem=QListWidgetItem()
newitem.setIcon(QIcon(r'i/a.png'))
newitem.setText(u'图片')
listwidget.insertItem(3,newitem)
layout=QHBoxLayout(self)
layout.addWidget(label)
layout.addWidget(listwidget)
self.setLayout(layout)
#更改为图标显示,只要添加一行语句:
#listwidget.setViewMode(QListView.IconMode)
self.connect(listwidget,SIGNAL('currentTextChanged(QString)'),label,SLOT('setText(QString)'))
def main():
app = QtGui.QApplication(sys.argv)
ex =Painterd()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
如图:
#更改为图标显示,只要添加一行语句:
#listwidget.setViewMode(QListView.IconMode)
如图:
qt model/view 架构基础介绍之QListWidget的更多相关文章
- qt model/view 架构基础介绍之QTableWidget
# -*- coding: utf-8 -*- # python:2.x #说明:QTreeWidget用于展示树型结构,也就是层次结构同前面说的 QListWidget 类似,这个类需要同另外一个辅 ...
- qt model/view 架构基础介绍之QTreeWidget
# -*- coding: utf-8 -*- # python:2.x #说明:QTreeWidget用于展示树型结构,也就是层次结构同前面说的 QListWidget 类似,这个类需要同另外一个辅 ...
- qt model/view 架构自定义模型之QFileSystemModel
# -*- coding: utf-8 -*- # python:2.x #QFileSystemModel """ Qt 内置了两种模型:QStandardItemM ...
- qt model/view 架构自定义模型之QStringListModel
# -*- coding: utf-8 -*- # python:2.x #QStringListModel #QStringListModel 是最简单的模型类,具备向视图提供字符串数据的能力. # ...
- 第15.26节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QListWidget详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 列表部件(List Widget)对应类QListWidget,是从QListView派生 ...
- 第15.22节 PyQt(Python+Qt)入门学习:Model/View架构详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关 ...
- 第15.18节 PyQt(Python+Qt)入门学习:Model/View架构中视图Item Views父类详解
老猿Python博文目录 老猿Python博客地址 一.概述 在PyQt图形界面中,支持采用Model/View架构实现数据和界面逻辑分离,其中Model用于处理数据存储,View用于界面数据展现,当 ...
- Qt 学习之路 2(41):model/view 架构
Qt 学习之路 2(41):model/view 架构 豆子 2013年1月23日 Qt 学习之路 2 50条评论 有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应 ...
- 第15.23节 PyQt(Python+Qt)入门学习:Model/View架构中QListView视图配套Model的开发使用
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 QListView理论上可以和所有QAbstractItemModel派生的类如QStri ...
随机推荐
- IOS的一个带动画的多项选择的控件(一)
先上效果图: 这个程序分2个层次,一个是顶部的带UITextField的bar,一个是下拉选择的view,下拉选择的view带有4个自己定义的UIView 我们先定义一个UIViewControlle ...
- BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能
http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...
- [IOI1999]花店橱窗布置(DP路径记录)
题目:[IOI1999]花店橱窗布置 问题编号:496 题目描述 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V ...
- HDU--4784 Dinner Coming Soon DP+BFS
题意非常长非常变态.一个人要到他男朋友家,他最初有R元以及T分钟的时间来赶到他男朋友家.有N个房子M条道路,每条道路有须要消耗的时间以及过路费,同一时候还要顺路做食盐生意,起初身上没有食盐,最多带B袋 ...
- Citrix 服务器虚拟化之十 Xenserver高可用性HA
Citrix 服务器虚拟化之十 Xenserver高可用性HA HA是一套全自动功能设计,规划.它可以安全地恢复出现问题的XenServe 主机.例如物理破坏网络或主机的硬件故障,HA可确保无需任何人 ...
- 可用与禁用 E:enabled { sRules }
<!DOCTYPE html><html lang="zh-cmn-Hans"><head><meta charset="utf ...
- FileShare文件读写锁解决“文件XXX正由另一进程使用,因此该进程无法访问此文件”(转)
开发过程中,我们往往需要大量与文件交互,读文件,写文件已成家常便饭,本地运行完美,但一上到投产环境,往往会出现很多令人措手不及的意外,或开发中的烦恼,因此,我对普通的C#文件操作做了一次总结,问题大部 ...
- angular 指令梳理 —— checkBox
checkBox 持久化数据为 逗号分割 /** * 功能说明: * htCheckbox 指令用于收集checkbox数据. * 在页面中使用 * 属性指令:ht-checkbox * 对应的值为s ...
- 用pod导入ReactiveCocoa
用pod导入ReactiveCocoa [1] 第一种 platform:ios,'7.0' pod 'ReactiveCocoa' [2] 第二种 pod 'ReactiveCocoa','2 ...
- iphone手机端图片错位修正的js代码
<script type="text/javascript"> $(function(){ // 获取终端的相关信息 var Terminal = { // 辨别移动终 ...