为什么继承另一个类的类不会产生与“另一个类”相同的结果?

问题描述 投票:2回答:2

我正在使用PyQt5在Python中开发一个应用程序。这是有问题的代码:

class Dialog(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.layout = QtWidgets.QGridLayout()
        self.main = QtWidgets.QWidget()
        self.main.setLayout(self.layout)

        self.setStyleSheet(QMainWindowStyle)
        self.setCentralWidget(self.main)
        self.show()

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

class SettingsDialog(Dialog):
    def __init__(self):
        super().__init__()
        self.tabs = QtWidgets.QTabWidget(self)
        self.tabs.setStyleSheet(QTabWidgetStyle)
        self.layout.addWidget(self.tabs)

        self.tab_appearance = AppearanceTab()
        self.tab_appearance.setStyleSheet(QWidgetStyle)
        self.tab_appearance_layout = QtWidgets.QGridLayout()
        self.tab_appearance.setLayout(self.tab_appearance_layout)
        self.tabs.addTab(self.tab_appearance, "Appearance")

        self.tab_server = QtWidgets.QWidget()
        self.tab_server.setStyleSheet(QWidgetStyle)
        self.tab_server_layout = QtWidgets.QGridLayout()
        self.tab_server.setLayout(self.tab_server_layout)
        self.tabs.addTab(self.tab_server, "Server")

为什么当self.tab_appearance是一个AppearanceTab实例(应该是QWidget的副本)时,当self.tab_serverself.tab_server的一个实例时,它与QWidget(即背景颜色变化)有不同的风格?

样式表只定义了background-color: #333333color: #dddddd

提前致谢。

编辑:

我相信样式表没有正确应用于AppearanceTab,但我不知道为什么会看到它只是继承自QWidget

编辑2:

可以找到一个MCVE(以及我的项目的其余部分)on github

python python-3.x pyqt pyqt5 qtstylesheets
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.