制作统计软件时经常会使用表格将资料列出,或是通过表格进行资料的设置,在 Qt 中可以使用 QTableWidget 实现一个表格。 本例演示如何使用表格,并在表格中嵌入控件。
1 #coding: utf-8 2 from PyQt4.QtCore import * 3 from PyQt4.QtGui import * 4 import sys 5 6 QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8")) 7 8 class MyTable(QTableWidget): 9 def __init__(self, parent=None): 10 super(MyTable, self).__init__(parent) 11 self.setColumnCount(5) 12 self.setRowCount(2) 13 self.setItem(0, 0, QTableWidgetItem(self.tr("性别"))) 14 self.setItem(0, 1, QTableWidgetItem(self.tr("姓名"))) 15 self.setItem(0, 2, QTableWidgetItem(self.tr("出生日期"))) 16 self.setItem(0, 3, QTableWidgetItem(self.tr("职业"))) 17 self.setItem(0, 4, QTableWidgetItem(self.tr("收入"))) 18 lbp1 = QLabel() 19 lbp1.setPixmap(QPixmap("image/4.gif")) 20 self.setCellWidget(1, 0, lbp1) 21 twi1 = QTableWidgetItem("Tom") 22 self.setItem(1, 1, twi1) 23 #表格中插入一个 QDateTimeEdit 控件,该控件可以编辑日期时间,setCalendarPopup()方法设置是否弹出日历编辑器 24 dte1 = QDateEdit() 25 dte1.setDateTime(QDateTime.currentDateTime()) 26 dte1.setDisplayFormat("yyyy/mm/dd") 27 dte1.setCalendarPopup(True) 28 self.setCellWidget(1, 2, dte1) 29 cbw = QComboBox() 30 cbw.addItem("Worker") 31 cbw.addItem("Famer") 32 cbw.addItem("Doctor") 33 cbw.addItem("Layer") 34 cbw.addItem("Soldier") 35 self.setCellWidget(1, 3, cbw) 36 sb1 = QSpinBox() 37 sb1.setRange(1000, 10000) 38 self.setCellWidget(1, 4, sb1) 39 40 app = QApplication(sys.argv) 41 myqq = MyTable() 42 myqq.setWindowTitle("My Table") 43 myqq.show() 44 app.exec_()