PyQt学习笔记(17)——QTableWidget
标签:
pythonpyqtguiqtabelwidget |
分类: Python |
先看一下类的继承图:
http://s2/middle/4b50392148174a000a0c1&690
一,如何构建一个QtableWidget。
# !/usr/bin/python
import sys
from PyQt4.QtGui import *
class TableWidget(QMainWindow):
app = QApplication(sys.argv)
tb = TableWidget()
tb.show()
app.exec_()
结果如下图所示:创建了一个10行6列的表格,可编辑可输入。
初始化的时候也可以不设置行数和列数。而等到创建完了以后再设。
比如:
这样结果是跟上面一样的。
http://s14/middle/4b50392148174a331f07d&690
二,添加表头。
可以添加水平和垂直表头,QtableWidget提供了两个方法来添加表头,非常方便。
self.table = QTableWidget(5,7)
上面两句就是添加水平表头。假如我们不添加表头,那么表头默认的数字就是代表所在
行或者所在列。
三,添加表项。
self.table.setItem(1,2,self.newItem)
如下图:可以看出,行列数是指不算标题行,都是从第0行,或者第0列开始计数的。
http://s7/middle/4b50392148174a5655a46&690
下面我们通过循环来添加表项的所有内容:
self.table =
QTableWidget(5,7)
self.table.setHorizontalHeaderLabel
QTableWidget.rowCount()是得到行数,int型。
QTableWidget.columnCount()是得到列数,int型
结果如下:
四,修改表项内容
QTableWidget.clear(self) 清楚所有表项及表头
QTableWidget.clearContents(self) 只清楚表项,不清楚表头。
QTableWidget.insertColumn(self, int column) 在某一列插入新的一列。
QTableWidget.insertRow(self, int row)在某一行插入新的一行。
QTableWidget.removeColumn(self, int column) 移除column列及其内容。
QTableWidget.removeRow(self, int row)移除第row行及其内容。
五,关于显示的一些问题,外观
QTableView.setShowGrid (self, bool show) 从TableView继承而来的,
是否显示表格的横竖线,默认情况下是显示的,如上面的例子,如果设为setShowGrid(False) ,则不显示分割线,横竖都没有。
http://s14/middle/4b50392148174ae5babfd&690
QabstractItemView 是QTableWidget的父类的父类,他有下面几个方法,我们QTableWidget中经常调用,就是是否项目可编辑,点击选择是选择行,还是可以选择列,是可以选择多行(多列),还是只可以选择单行(单列),等等非常好用,如下的列子:
self.table.setEditTriggers(QTableWidget.NoEditTriggers)
self.table.setAlternatingRowColors(True)
http://s12/middle/4b50392148174b02744bb&690
不能编辑,不能选择一列或者单个项目,只能选择单一行。
六,Qt Singal

加载中…