PyQt的应用程序:恢复原来的外观和改变一些QSS元素后感觉(PyQt application: R

2019-09-29 03:25发布

我改变使用QSS样式表我的PyQt的应用程序的一些元素的外观。 这具有覆盖这些元件的许多其它特性以及(如文档和许多教程中所述)的效果。

现在,我想恢复这些覆盖性能,但我还没有设法找到的“原始”的风格在我的系统,其中默认的主题定义表。 从这些样式表使用的信息,我可以恢复原来的样子的其余部分。

可能有人给我暗示在哪里可以找到这些样式表? 或者是有一个更优雅的方式来实现自己的目标?

Answer 1:

没有默认的样式表。 所有的默认样式是通过完成风格插件 。

当一个样式表被设置时,它创建的实例QStyleSheetStyle (这是一个子类QWindowsStyle )并将其传递到当前样式的参考。 该QStyleSheetStyle将尝试应用当前样式的QSS规则,但如果这是不可能的,它会回落到QWindowsStyle

而这就是问题的开始,因为没有简单的方法来确定哪些特定的QSS规则就行了。 有时将有一个非常精确的效果,其他时间将彻底痛殴正常的造型。 此外,确切的结果取决于当前的风格是什么。 因此,一个QSS规则可能看起来好自己的系统上,但不能保证它会做这样的人。

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

然而,有可用的第三个选项。 没做什么。 尊重用户的选择部件造型 - 或至少是,不要强迫他们接受你的。



文章来源: PyQt application: Restore the original look & feel after changing some QSS elements