在 PyQt5 中获取 GUI 的标准调色板

Posted

技术标签:

【中文标题】在 PyQt5 中获取 GUI 的标准调色板【英文标题】:Get standard palette of the GUI in PyQt5 【发布时间】:2020-01-30 10:28:09 【问题描述】:

在我的应用程序中有一个按钮可以切换到深色主题。但是如果用户想要切换回初始主题。

我知道在 C++ 中它可以像 qApp->setPalette(this->style()->standardPalette()); 那样完成。

我如何在 python 中做到这一点?

【问题讨论】:

【参考方案1】:

qApp 是应用程序实例,通常使用QtWidgets.QApplication.instance() 或通过QtWidgets.qApp 访问(注意它们是指向实例的指针,但它们会返回不同的python对象,请参阅qApp versus QApplication.instance() 了解更多信息)。

QtWidgets.QApplication.instance().setPalette(self.style().standardPalette())

请注意,这只会恢复调色板,但在某些系统中这不是一件好事(来自standardPalette()docs:

请注意,在支持系统颜色的系统上,不使用样式的标准调色板。特别是,Windows Vista 和 Mac 样式不使用标准调色板,而是使用本机主题引擎。 使用这些样式,您不应使用 QApplication::setPalette() 设置调色板

【讨论】:

以上是关于在 PyQt5 中获取 GUI 的标准调色板的主要内容,如果未能解决你的问题,请参考以下文章