Qt(以及 PyQt)允许您将 QSS(Qt 样式表)文件添加到 QApplication,并为您创建的每个单独的小部件添加一个。您可以使用以下 Python/PyQt 代码设置应用程序的样式表:
# app is a QApplication and styleSheet is a str.
app.setStyleSheet(styleSheet)
Run Code Online (Sandbox Code Playgroud)
然而,该setStyleSheet()函数只允许您为 QApplication 指定一个 QSS 文件。这与 CSS 不同,CSS 允许将任意数量的样式表应用于单个网页。
我正在 PyQt 中编写一个程序,它将允许用户自定义主题。该程序有一个主要的 QSS 文件,主题应该能够包含附加的 QSS,这些附加的 QSS 会级联在其之上。然而,由于 Qt 的明显限制,这似乎不可能。
我想到的一个想法是,我可以将程序的默认样式表分配给 QApplication,并将当前主题的样式表分配给 QMainWindow。不过,这似乎是一种解决方法,而不是一个好主意。
有没有像这样添加两个 Qt 样式表的好方法?