表格控件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) #是否隐藏行表头