PyQt应用程序:恢复原始外观&改变一些QSS元素后的感觉

时间:2016-10-08 06:55:41

标签: python user-interface pyqt qtstylesheets

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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