出于 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,定义为“一般背景颜色”。