You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5中QTableWidget表头颜色无法修改问题求助

解决QTableWidget表头仅指定单元格变绿的问题

你的问题出在直接给QHeaderView设置background-color时,会给整个表头控件(包括右侧未被列占据的空白区域)上色。要只让test1、test2、test3这三个表头单元格变绿,需要修改样式表的作用对象,针对表头的每个section(单元格)设置样式。

修改步骤:

  • 无需单独创建新的QHeaderView实例,直接使用QTableWidget自带的水平表头
  • 用样式表选择器QHeaderView::section来定位单个表头单元格,设置其背景色
  • 可选:设置列宽让表头单元格填满控件宽度,彻底避免右侧空白区域

修改后的代码:

self.Table = QTableWidget(TableFrameWidget)
self.Table.setFixedSize(98, 100)  
self.Table.setColumnCount(3)
self.Table.setHorizontalHeaderLabels(['test1', 'test2', 'test3'])
# 获取表格自带的水平表头
header = self.Table.horizontalHeader()
# 仅为表头单元格设置绿色背景
header.setStyleSheet("QHeaderView::section { background-color: green; }")
# 可选:让三列均匀分配宽度,填满表头区域
header.setSectionResizeMode(QHeaderView.Stretch)

关键说明:

  • QHeaderView::section是Qt样式表中专门针对表头单元格的选择器,只会作用于每个列对应的表头单元格,不会影响右侧空白区域
  • 如果不需要列均匀拉伸,也可以手动设置固定列宽,比如self.Table.setColumnWidth(0, 32),让三列宽度总和接近控件宽度即可

内容的提问来源于stack exchange,提问作者Lily

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 15:09:50