from decimal import *

from PyQt4.QtGui import *

from PyQt4.Qt import *

from PyQt4.QtCore import *

import sys

class Example(QWidget):

def __init__(self,args=None):

super(Example, self).__init__(args)

list_data=[1,2,3,4]

lm=MyListMode(list_data,self)

self.lv=QListView()

self.lv.setToolTip('listview')

self.lv.setModel(lm)

self.la= MyItemMode()

self.lv.clicked.connect(self.indexMove)

layot=QVBoxLayout()

layot.addWidget(self.lv)

self.setLayout(layot)

def indexMove(self,text):

print u'你选择的是{0}'.format(text.row())

print dir(text)

if text.row()==0:#obj.row()指定的项

self.lv.setModel(self.la)

class MyListMode(QAbstractListModel):

def __init__(self,datain,parnet=None,*args):

"""数据:一列表中的每个项目是一个行"""

super(MyListMode,self).__init__(parnet,*args)

self.listdata=datain

#这2个方法是规定好的

def rowCount(self,parent=QModelIndex()):

return len(self.listdata)

def data(self,index,row):#isValid()是否有效的

if index.isValid() and row==Qt.DisplayRole:#关键数据以文本的形式呈现

return QVariant(self.listdata[index.row()])#QVariant类就像一个最常见的Qt联盟数据类型

else:

return QVariant()

#QStandardItemModel类提供了一个通用的模型来存储自定义数据

class MyItemMode(QStandardItemModel):

def __init__(self,parnet=None):

super(QStandardItemModel,self).__init__(parnet)

for i in xrange(10):

item=QStandardItem('items%d'%i)

item.setFlags(Qt.ItemIsUserCheckable|Qt.ItemIsEnabled)#ItemIsUserCheckable接受与不接受

#ItemIsEnabled用于交互

item.setData(QVariant(Qt.Checked),Qt.CheckStateRole)#Checked检查是否选中

#CheckStateRole检查是否选择的状态

self.appendRow(item)#附加一行包含项目。 如果有必要,列数增加的大小项目。

def paintStart(self):

l=[]

for i in xrange(self.rowCount()):

l.append(self.item(i).ckeckState())

print l

#self.setCentralWidget(view)中央位置

app =QApplication(sys.argv)

x = Example()

x.show()

sys.exit(app.exec_())

如图:

学习内容都从文档和谷歌搜索,有兴趣的朋友可以学习下

pyqt listview基础学习01的更多相关文章

  1. T-SQL 基础学习 01

    --新建数据库 create database Studentdb go --使用数据库 use Studentdb go --新建表 create table Username ( StudentN ...

  2. XML基础学习01

    XML学习 1:XML:可扩展的标识语言,是一种描述结构数据的格式,简化了网络中数据交换和表示,使得代码,数据和表示分离,并作为数据交换的标准格式,被称为智能数据文档. 2:当我们不使用数据库来存储数 ...

  3. java基础学习01

    学习主意:边看视频,边编写代码,学习成果体现在代码

  4. [AngularJS学习笔记] 基础学习01

    2016-06-06开始学习AngularJS AngularJS是会extend HTML的 ng-directives 先学习了四个 ng-app:定义AngularJS Application的 ...

  5. pyqt treeview基础学习

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from Py ...

  6. c语言基础学习01

    =============================================================================每一种语言都有其独特的语法规则与语言定义. 指 ...

  7. Python基础学习01

    1.编译型解释型语言区别: 编译型:一次性将全部代码编译成二进制文件,代表c,c++ 优点:执行效率高 缺点:开发速度慢,不能跨平台 解释型:当程序运行时,从上至下一行一行执行,解释成二进制去执行 优 ...

  8. 18-09-21 numpy 的基础学习01

    # 1关于numpy 的学习import numpy as np # 一 如何创建数组****# 1 有规律的一维数据的创建======# 1 range() 和arange() 区别 貌似没有区别l ...

  9. spring基础学习01

    spring基础 Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用 IOC控制反转 把创建对象和维护对象之间的关系权利 ...

随机推荐

  1. 如何将EXCEL表导入MYSQL

            在平时的工作学习中,难免会遇到需要把EXCEL表中的数据导入到MYSQL中,比如要把EXCEL中的数据进行核对,或者要把测试用例导入到TestLink中.本人搜集相关的资料并加以实践总 ...

  2. Laravel 4 Blade模板引擎

    http://my.oschina.net/5say/blog/201290 模板输出 基本输出 1 <!-- app/views/example.blade.php --> 2 < ...

  3. java 图片 批量 压缩 +所有压缩

    /* oldsrc  : 原图片地址目录 如 'd:/'    newsrc  : 压缩后图片地址目录 如 'e:/'    widthdist,heightdist : 压缩后的宽和高       ...

  4. webpack的配置及使用

    webpack 安装 命令行输入 npm install webpack 配置文件 webpack.config.js moudule.exports = { //Import 入口文件 entry: ...

  5. DotNet加密方式解析--散列加密

    没时间扯淡类,赶紧上车吧. 在现代社会中,信息安全对于每一个人都是至关重要的,例如我们的银行账户安全.支付宝和微信账户安全.以及邮箱等等,说到信息安全,那就必须得提到加密技术,至于加密的一些相关概念, ...

  6. webform开发经验(一):Asp.Net获取Checkbox选中的值

    webform中获取repeat控件列表下的checkbox选中的值: 码农上代码: public static string getSelectedIDs(Repeater Rpt_) { stri ...

  7. Chinese_PRC_CI_AS and SQL_Latin1_General_CP1_CI_AS类型错误

    在编写存储过程时,经常会用到临时表,而且往往会使用临时表与正式表相关联. 当临时表与正式表关联的字段是字符类型的时候,因为临时表创建的字符类型会默认数据库的编码,而正式表的字符编码可能不同,那么这个时 ...

  8. LinkedList : 双向链表与实现

    所谓双向链表: (由此图可见老夫深厚的画功) 链表,就是由一个一个的节点连接组成. 在这里,每一个节点都是由三部分组成:上一个节点.当前节点的元素.下一个节点 当链表中只有一个节点的时候,这个节点指向 ...

  9. C#上传图片同时生成缩略图,控制图片上传大小。

    #region 上传图片生成缩略图 /// <summary> /// 上传图片 /// </summary> /// <param name="sender& ...

  10. HTML解析利器 - HtmlAgilityPack

    HtmlAgilityPack 是CodePlex 上的一个开源项目.它提供了标准的DOM API 和XPath 导航--即使 HTML 不是适当的格式! 使用HtmlAgilityPack操作HTM ...