如何获取系统主题的调色板?

时间:2012-10-29 20:09:04

标签: matplotlib pyqt4 pyside

对于matplotlib目的,我需要系统用于窗口背景的默认颜色。在Ubuntu中,例如,它是一个非常浅灰色,比窗口XP更轻。

我正在将默认matplotlib色块的颜色更改为此灰色,以使它们看起来像原生。但是,我不想硬编码。有没有办法从PyQt中获取本机背景颜色?

1 个答案:

答案 0 :(得分:1)

Qt在QPalette中定义了一堆系统颜色。要在PySide中获得某种颜色,请调用

QColor(QPalette().color(state, role))

其中state代表颜色的状态(即QPalette.DisabledQPalette.ActiveQPalette.InactiveQPalette.Normal)和role代表符号颜色待定。可以在http://qt-project.org/doc/qt-4.8/qpalette.html#ColorRole-enum找到完整的颜色角色列表。

您可能正在寻找的颜色角色是QPalette.Window,定义为“一般背景颜色。”