PyQt 应用程序:更改一些 QSS 元素后恢复原始外观

PyQt application: Restore the original look & feel after changing some QSS elements

我正在使用 QSS 样式更改我的 pyQt 应用程序中某些元素的外观 sheet。这也具有覆盖这些元素的许多其他属性的效果(如文档和许多教程中所述)。

现在,我想恢复这些被覆盖的属性,但我还没有设法在我的系统上找到定义了默认主题的 "original" 样式 sheet。使用这些样式 sheet 中的信息,我可以恢复其余的原始外观。

有人可以告诉我在哪里可以找到这些样式 sheet 吗?还是有更优雅的方式来实现我的目标?

没有默认样式表。所有默认样式均由 style plugins.

完成

设置样式表后,它会创建 QStyleSheetStyle 的实例(它是 QWindowsStyle 的子类)并将当前样式的引用传递给它。 QStyleSheetStyle 将尝试在 当前样式之上应用 QSS 规则 ,但如果不可能,它将退回到 QWindowsStyle

这就是问题的根源,因为没有简单的方法来确定特定 QSS 规则的作用。有时它会产生非常精确的效果,而其他时候它会完全破坏正常的造型。此外,确切的结果取决于当前的风格。因此,QSS 规则在您自己的系统上可能看起来不错,但不能保证它在其他系统上也会如此。

因此,使用样式表始终是一种妥协。创建自定义 QStyle 会给你更多的控制权,但样式表通常更容易编写和维护。所以这是方便和精确之间的权衡。

但是,还有第三种选择。没做什么。尊重用户对小部件样式的选择 - 或者至少,不要强迫他们接受您的样式。