出于 matplotlib 的目的,我需要系统用于窗口背景的默认颜色。例如,在 Ubuntu 中,它是一种非常浅的灰色,比 Windows XP 的稍微浅一些。
我正在将默认 matplotlib 补丁的颜色更改为这种灰色,以使它们看起来是原生的。但是,我不想对其进行硬编码。有没有办法从 PyQt 中获取本机背景颜色?
出于 matplotlib 的目的,我需要系统用于窗口背景的默认颜色。例如,在 Ubuntu 中,它是一种非常浅的灰色,比 Windows XP 的稍微浅一些。
我正在将默认 matplotlib 补丁的颜色更改为这种灰色,以使它们看起来是原生的。但是,我不想对其进行硬编码。有没有办法从 PyQt 中获取本机背景颜色?
Qt 在QPalette
. 要在 PySide 中获取某种颜色,请调用
QColor(QPalette().color(state, role))
其中state
表示颜色的状态(即QPalette.Disabled
、QPalette.Active
、QPalette.Inactive
、QPalette.Normal
)并role
表示要确定的符号颜色。可以在http://qt-project.org/doc/qt-4.8/qpalette.html#ColorRole-enum找到完整的颜色角色列表。
您可能正在寻找的颜色角色是QPalette.Window
,定义为“一般背景颜色”。