PyQt4 精彩实例分析* 实例7 表格的使用

制作统计软件时经常会使用表格将资料列出,或是通过表格进行资料的设置,在Qt中可以使用QTableWidget实现一个表格。本实例演示如何使用表格,并在表格中嵌入控件。如下图所示为“表格的使用”对话框。


QTableWidget类提供了一个灵活的和可编辑的表格控件,包含很多API,可以处理标题,行列,单元格和选中区域,QTableWidget可以嵌入编辑框或显示控件,并可通过拖动控制柄调节各单元格的大小。表格的每一项可以定义成不同的属性,可以显示文本,也可以插入控件,这样给表格的使用带来了很好的扩展性。

本实例的实现代码如下:

# -*- coding: utf-8 -*-   
from PyQt4.QtGui import *  
from PyQt4.QtCore import *  
import sys  
  
QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))  
   
class MyTable(QTableWidget):  
    def __init__(self,parent=None):  
        super(MyTable,self).__init__(parent)  
        self.setColumnCount(5)  
        self.setRowCount(2)  
        self.setItem(0,0,QTableWidgetItem(self.tr("性别")))  
        self.setItem(0,1,QTableWidgetItem(self.tr("姓名")))  
        self.setItem(0,2,QTableWidgetItem(self.tr("出生日期")))  
        self.setItem(0,3,QTableWidgetItem(self.tr("职业")))  
        self.setItem(0,4,QTableWidgetItem(self.tr("收入")))  
        lbp1=QLabel()  
        lbp1.setPixmap(QPixmap("image/4.gif"))  
        self.setCellWidget(1,0,lbp1)  
        twi1=QTableWidgetItem("Tom")  
        self.setItem(1,1,twi1)  
        dte1=QDateTimeEdit()  
        dte1.setDateTime(QDateTime.currentDateTime())  
        dte1.setDisplayFormat("yyyy/mm/dd")  
        dte1.setCalendarPopup(True)  
        self.setCellWidget(1,2,dte1)  
        cbw=QComboBox()  
        cbw.addItem("Worker")  
        cbw.addItem("Famer")  
        cbw.addItem("Doctor")  
        cbw.addItem("Lawyer")  
        cbw.addItem("Soldier")  
        self.setCellWidget(1,3,cbw)  
        sb1=QSpinBox()  
        sb1.setRange(1000,10000)  
        self.setCellWidget(1,4,sb1)  
    
app=QApplication(sys.argv)  
myqq=MyTable()  
myqq.setWindowTitle("My Table")  
myqq.show()  
app.exec_()  

第18-20行在表格中插入一个QLabel控件,并设置QLabel的图形属性。

第21-22行设置表格单元的属性为文本显示。

第23-27行在表格中插入一个QDateTimeEdit控件,该控件可以编辑日期时间,setCalendarPopup()方法设置是否弹出日历编辑器。

第28-34行在表格中插入一个QComboBox控件,调用QTableWidget的setCellWidget()函数可在某个指定的表格单元格中插入一个控件,函数的前两个参数用于指定单元格的行,列号。

第35-37行在表格中插入一个QSpinBox控件。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值