(1) 固定QTableWidget列宽:
self.tablewidget.horizontalHeader().setSectionResizeMode(QHeaderView.Fixed)
(2) 固定QTableWidget行高:
self.tablewidget.verticalHeader().setSectionResizeMode(QHeaderView.Fixed)
(3) 设置自适应列宽:
self.tablewidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents)
0为指定的实现自适应列宽的列序号。
(4) 将表格设为禁止状态,对用户只读,默认双击单元格可以修改
self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
(5) qtablewidget控件在默认情况下,如果列不足表格的宽度,则后面会有空白,此时可以通过以下设置让表格的列铺满占满表格的宽度。
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
(6) 当我们想手动调整列宽时
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
(7) 自定义列宽
self.tableWidget.setColumnWidth(0, 40)
self.tableWidget.setColumnWidth(1, 200)
self.tableWidget.setColumnWidth(2, 200)
(8) 去掉表格的边框
self.tableWidget.setShowGrid(False)
(9) 设置表格整行选中。表格默认选中的是单个单元格。通过下面代码可以设置成选中整行。
self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
另外,单元格选中的类型还可以修改成如下方式:
QAbstractItemView.SelectColumns 选中1列
QAbstractItemView.SelectRows 选中1行
QAbstractItemView.SelectItems 选中1个单元格
(10) 行、列标题的显示与隐藏。
对于列标题的显示或隐藏设置,可以通过添加如下代码实现,默认是显示的。
self.tableWidget.horizontalHeader().setVisible(False)
对于行标题,可以使用如下代码进行隐藏或显示设置,默认是显示
self.tableWidget.verticalHeader().setVisible(False)
(11) 动态添加值
items = [['xzz','23','Male','IT'],['cr','18','Female','beautiful']]
for i in range(len(items)):
item = items[i]
row = self.tableWidget.rowCount()
self.tableWidget.insertRow(row)
for j in range(len(item)):
item = QTableWidgetItem(str(items[i][j]))
self.tableWidget.setItem(row,j,item)
(12) 居中显示
newItem = QTableWidgetItem(“内容”)
newItem.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
(13) 设置字体
font = QtGui.QFont()
font.setFamily("微软雅黑")
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
self.tableWidget.setFont(font)
(14) 取出边框
self.tableWidget.setFrameShape(QtWidgets.QFrame.NoFrame)
(15) 合并单元格
self.tableWidget.setSpan(0,3,2,1)
(16) 对齐单元格中的内容
Qt.AlignLeft 将单元格内容沿单元格左边缘对齐
Qt.AlignRight 将单元格内容沿单元格右边缘对齐
Qt.AlignHCenter 将单元格内容居中显示在水平方向上。
Qt.AlignJustify 将文本在可用的空间中对齐,默认是从左到右的
Qt.AlignTop 与顶部对齐
Qt.AlignBottom 与底部对齐
Qt.AlignVCenter 在可用的空间中,居中显示在垂直方向上
Qt.AlignBaseline 与基线对齐
(11) 设置单元格字体颜色和背景颜色
item.setForeground(QBrush(QColor(255,0,0))) #设置除最后一列外的文字颜色为红色
item.setBackground(QBrush(QColor(0,255,0))) #设置最后一列的背景色为绿色