表格控件QTableWidget

搭配QTableWidgetItem使用

 样式:

 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) #是否隐藏行表头
原文地址:https://www.cnblogs.com/liming19680104/p/10374276.html