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

Style.qss仅对QStackedWidget内面板生效,其余控件无样式的问题求助

PySide6样式仅对QStackedWidget内面板生效,其他控件无样式

我正在开发一款基于PySide6的应用,该应用包含带有多个可切换面板的QStackedWidget,以及用于切换面板的顶部导航栏,点击顶部导航栏的按钮就能切换到对应面板。我把style.qss样式文件应用到MainWindow类上,但样式只对QStackedWidget内的面板生效,其他控件都没应用上样式。

(效果说明:顶部导航栏的按钮未应用样式,而面板内的"Welcome"标签显示白色背景)

应用代码

import sys
from PySide6 import QtCore, QtWidgets

class MainWindow(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        with open("style.qss", "r") as f:
            self.style = f.read()
        self.setStyleSheet(self.style)

        layout = QtWidgets.QVBoxLayout(self)

        self.stack = QtWidgets.QStackedWidget()
        layout.addWidget(self.stack)

        self.home = HomePage()
        self.stack.addWidget(self.home)

        self.topbar = TopBar(stack=self.stack, home=self.home)
        self.topbar.setStyleSheet(self.style)
        layout.insertWidget(0, self.topbar)

class TopBar(QtWidgets.QWidget):
    def __init__(self, stack, home):
        super().__init__()

        layout = QtWidgets.QHBoxLayout(self)

        self.home_button = QtWidgets.QPushButton("Home")
        layout.addWidget(self.home_button)
        
        self.home_button.setSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)

        self.home_button.clicked.connect(
            lambda: stack.setCurrentWidget(home)
        )
        self.home_button.setIconSize(QtCore.QSize(24,24))

class HomePage(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()

        layout = QtWidgets.QVBoxLayout(self)
        layout.addWidget(QtWidgets.QLabel("Welcome"))


app = QtWidgets.QApplication([])

widget = MainWindow()
widget.resize(750, 800)
widget.show()

sys.exit(app.exec())

style.qss内容

QLabel {
    background-color: White;
}

QLabel#title {
    font-size: 20px;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.04 16:04:50