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

如何修改PyQt中QTabWidget的内容背景颜色为黑色?

问题描述

我试图将QTabWidget的内容背景设置为黑色,以与图表风格保持一致,但尝试了设置布局背景颜色、创建父部件填充黑色等方法后均未成功,查阅PyQt官方文档也未找到有用的解决办法。

以下是我的实现代码:

self.tabBoard = QTabWidget()
self.tabBoard.setMovable(True)
self.tabBoard.setSizePolicy(
    QSizePolicy.MinimumExpanding,
    QSizePolicy.MinimumExpanding
    )

# 绘制示例数据
plot = pg.PlotWidget()
plot.plot(range(0, 20), [3, 4, 2, 4, 7, 3, 4, 2, 4, 7, 3, 4, 2, 4, 7, 3, 4, 2, 4, 7])
plot.setAspectLocked(lock = True, ratio = 1)

tabPlotContainer = QVBoxLayout(self.tabBoard)
tabPlotContainer.setContentsMargins(5, 5, 5, 5)
tabPlotContainer.addWidget(plot)

# 表格部分
tabTable = QWidget()
tableWidget = QTableWidget(5, 2)
tableWidget.setHorizontalHeaderLabels(['column1', 'column2'])
tableWidget.horizontalHeader().setStretchLastSection(True)

tab1hbox = QHBoxLayout()
tab1hbox.setContentsMargins(5, 5, 5, 5)
tab1hbox.addWidget(tableWidget)

tabTable.setLayout(tab1hbox)

tabSimple = QWidget()
tabSimple.setLayout(tabPlotContainer)

self.tabBoard.addTab(tabSimple, "Plot")
self.tabBoard.addTab(tabTable, "Table")

当前效果:
当前效果

期望效果:
期望效果


解决方法

核心原因

QTabWidget的Tab页面(QWidget)默认继承系统样式的背景,直接设置布局或父部件背景无法覆盖这个样式。

方法1:单独设置每个Tab页面的背景

给每个Tab对应的QWidget添加样式表:

# 给Plot页面设置黑色背景
tabSimple.setStyleSheet("background-color: black;")
# 给Table页面设置黑色背景
tabTable.setStyleSheet("background-color: black;")

方法2:全局设置QTabWidget的页面样式

如果所有Tab页面都需要黑色背景,直接给QTabWidget设置样式表,统一指定页面背景:

self.tabBoard.setStyleSheet("QWidget::tab-page { background-color: black; }")

额外适配(表格部件)

如果表格需要适配黑色背景,需单独设置表格的样式,保证文字和表头可见:

tableWidget.setStyleSheet("""
    QTableWidget { 
        background-color: black; 
        color: white; 
        gridline-color: #555;
    }
    QHeaderView::section { 
        background-color: #333; 
        color: white; 
        border: 1px solid #555;
    }
""")

补充:PyQtGraph图表背景

若PlotWidget背景未自动适配,可手动设置:

plot.setBackground('black')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:25:16