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
相关产品推荐
相关产品推荐

