from PyQt5.QtWidgets import QApplication, QTableWidget, QWidget, QHeaderView, QPushButton, QTableWidgetItem, QFrame
import sys
from PyQt5.QtGui import QBrush, QColor, QFont, QIcon
from PyQt5.QtCore import Qt, QSize
class tableWidget_UI(QWidget):
def __init__(self):
super().__init__()
self.resize(500, 500)
self.setWindowTitle('TableWidget学习')
titles = ['编号', '姓名', '工资', '入职日期', ' 性别']
self.table = QTableWidget(self) # 创建空表格
self.table.resize(450, 300)
# self.table = QTableWidget(4,3,self) # 同时创建4行3列的表格
self.table.setRowCount(9) # 设置行数--不包括标题列_分开设置行列
self.table.setColumnCount(5) # 设置列数_分开设置行列
self.table.setHorizontalHeaderLabels(titles) # 标题列---水平标题
# 参数 标题列表
# self.table.setVerticalHeaderLabels(titles) # 标题列---垂直标题
self.table.horizontalHeader().setStyleSheet(""># 表格头添加背景颜色
self.table.horizontalHeader().setStyleSheet("foreground-color: red") # 表格头添加背景颜色 空白表头区域红色?????? 表头文字区域没有效果 ???
self.table.setEditTriggers(QTableWidget.AnyKeyPressed) # 单元格用户能否、如何编辑
# QTableWidget.NoEditTriggers 单元格用户不可编辑
# QTableWidget.DoubleClicked 连续双击即可编辑
# QTableWidget.SelectedClicked 在被选中的情况下单击一次即可编辑
# QTableWidget.CurrentChanged 选中的单元格改变了即可编辑
# QTableWidget.AnyKeyPressed 按下任何符号键即可编辑
self.table.setSelectionBehavior(QTableWidget.SelectItems) # 设置选中行
# 鼠标点选时,默认选中一个单元格---QTableWidget.SelectItems
# QTableWidget.SelectRows 鼠标点击选中一行
# QTableWidget.SelectColumns 鼠标点击选中一列
self.table.setAlternatingRowColors(True) # 行是否自动变色
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # 设置列宽的适应方式
# QHeaderView.Stretch 拉伸--表格总宽度充满表格
# QHeaderView.Fixed 固定宽度
# QHeaderView.ResizeToContents 适应内容
s = self.table.columnCount() # 返回列数
QTableWidget.resizeRowsToContents(self.table) # 设置行高与内容匹配
# QTableWidget.resizeColumnsToContents(self.table)
# self.table.horizontalHeader().setFixedHeight(50) # 设置表列头高度
# self.table.horizontalHeader().setFixedWidth(820) # 设置列宽(没啥用)
# self.table.setColumnWidth(1, 350) #设置某列的宽度
# setSectionResizeMode 设置后,这个指令无效
# self.table.setRowHeight(0, 120) #设置某行的高度
self.table.horizontalHeader().setVisible(True) # 水平表格头是否隐藏
# self.table.verticalHeader().setVisible(False) #垂直表格头是否隐藏
lb = QPushButton('按钮')
# self.table.setCellWidget(0, 1, lb) #在指定单元格内放置控件
# 0行1列----不包括标题头
newItem = QTableWidgetItem('1') # 创建表格项---文本项目
self.table.setItem(0, 0, newItem) # 给指定单元格设置数据
newItem = QTableWidgetItem('12')
self.table.setItem(1, 0, newItem)
newItem = QTableWidgetItem('123')
self.table.setItem(2, 0, newItem)
newItem = QTableWidgetItem('1234')
self.table.setItem(3, 0, newItem)
newItem = QTableWidgetItem('12')
self.table.setItem(4,