搭配QTableWidgetItem使用

 样式:

表格控件QTableWidget_实例化


1 import sys
2 from PyQt5.QtCore import Qt
3 from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem,QWidget
4
5 class Demo(QWidget):
6 def __init__(self):
7 super(Demo, self).__init__()
8 self.resize(300,300)
9 self.bg=QTableWidget(7,6,self) #实例化表格.参数1参数2可选:指定设置表格的行数列数
10 # self.bg.setRowCount(6) #设置表格的行数
11 # self.bg.setColumnCount(6) #设置表格的列数
12 self.bg.resize(200,300) #【没有效果】
13 print(self.bg.rowCount()) #返回表格的行数
14 print(self.bg.columnCount()) #返回表格的列数
15 self.bg.setColumnWidth(0, 100) #设置列宽,第一个参数填序号,第二个参数填宽度值
16 self.bg.setRowHeight(0, 50) #设置行高,第一个参数序号,第二个参数高度值
17 self.bg.setHorizontalHeaderLabels(['h1', 'h2', 'h3', 'h4', ' h5', 'h6'])
18 #设置列标题
19 self.bg.setVerticalHeaderLabels(['t1', 't2', 't3', 't4', 't5', 't6','t7'])
20 #设置行标题
21
22 self.bg.setShowGrid(True) #设置是否显示表格上的网格线,True为显示(默认),False不显示
23 self.item_1 = QTableWidgetItem('李明') #实例化一个项目
24 self.bg.setItem(0, 0, self.item_1) #将项目添加到表格中。前两个int类型参数分别为行序号和列序号
25 self.item_1.setTextAlignment(Qt.AlignCenter) #设置项目的文本对齐方式
26 #QtAssistant中输入Qt::Alignment就可以找到各种对齐方式
27 self.bg.setSpan(2, 2, 2, 2) #用来合并单元格,前两个int参数分别为起始行序号和列序号,后两个分别为要合并的行数和列数
28 print(self.bg.findItems('李明', Qt.MatchExactly)) #进行查找,前一个参数为用来匹配的字符串
29 #参数2 Qt.MatchExactly 表示精确匹配
30 #Qt.MatchContains,表示包含匹配 在QtAssistant中输出Qt::MatchFlag即可了解各种匹配方式
31
32
33 if __name__ == '__main__':
34 app = QApplication(sys.argv)
35 demo = Demo()
36 demo.show()
37 sys.exit(app.exec_())
self.bg.horizontalHeader().setDefaultSectionSize(50)  #设置默认列宽
self.bg.verticalHeader().setDefaultSectionSize(30) #设置默认行高
self.bg.horizontalHeader().setFixedHeight(30) #设置列表头的高度
self.bg.verticalHeader().setFixedWidth(50) #设置行表头的宽度
#设置表头字体
font = self.bg.horizontalHeader().font() #实例化列表头的字体
font.setBold(True)
self.bg.horizontalHeader().setFont(font) #给列表头设置字体
font = self.bg.verticalHeader().font() # 实例化行表头的字体
font.setBold(True)
self.bg.verticalHeader().setFont(font) # 给行表头设置字体

self.bg.horizontalHeader().setHighlightSections(False) #设置列表头不塌陷
self.bg.verticalHeader().setHighlightSections(False) # 设置列表头不塌陷

#给表头文本设置颜色
self.item = self.bg.horizontalHeaderItem(1)
#self.item.setTextColor(QColor.red) #【有错 ??】

#self.bg.horizontalHeader().setVisible(False) #是否隐藏列表头
#self.bg.verticalHeader().setVisible(False) #是否隐藏行表头


self.bg.horizontalHeader().setDefaultSectionSize(50)  #设置默认列宽