QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。这主要体现在QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,正个表格都需要用逐个单元格构建起来。
下面代码实现了一个最简单的含有QTableWidget的小程序:
#!/usr/bin/env python
#coding=utf-8
fromPyQt4.QtGuiimport*
#目测table的类应该是在qt.gui里面的
fromPyQt4.QtCoreimport*
classMyDialog(QDialog):
def__init__(self, parent=None):
super(MyDialog, self).__init__(parent)
self.MyTable = QTableWidget(4,3)
self.MyTable.setHorizontalHeaderLabels(['姓名','身高','体重'])
newItem = QTableWidgetItem("松鼠")
self.MyTable.setItem(0,0, newItem)
newItem = QTableWidgetItem("10cm")
self.MyTable.setItem(0,1, newItem)
newItem = QTableWidgetItem("60g")
self.MyTable.setItem(0,2, newItem)
layout = QHBoxLayout()
layout.addWidget(self.MyTable)
self.setLayout(layout)
if__name__ =='__main__':
importsys
app = QApplication(sys.argv)
myWindow = MyDialog()
myWindow.show()
sys.exit(app.exec_())
其中:
self.MyTable = QTableWidget(4,3) 构造了一个QTableWidget的对象,并且设置为4行,3列
self.MyTable.setHorizontalHeaderLabels(['姓名','身高','体重'])
则设置表格的表头
newItem =
QT