在 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 的标准调色板的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 动态更改应用程序主题/调色板

调色板中缺少 Android Studio GUI 组件

OpenCV中的GUI特性 —— 绘图+鼠标画笔+轨迹栏调色板

Qt 按钮调色板

如何添加文件选择器以摆动 GUI 表单调​​色板组件 IntelliJ IDEA

从 ARGB 和/或十六进制调色板中获取颜色名称 [重复]