【发布时间】:2014-05-25 16:37:44
【问题描述】:
我无法获取小部件的实际背景颜色。 在我的特殊情况下,我在使用 QTabWidget 中的小部件时遇到了问题。
这是在 Windows7 上。 所以经典的小部件有一些灰色背景,而标签内的小部件通常用白色背景绘制。
我试过了:
def bgcolor(widget):
color = widget.palette().color(widget.backgroundRole()) # version 1
color = widget.palette().color(QtGui.QPalette.Background) # version 2
rgba = color.red(), color.green(), color.blue(), color.alpha()
return rgba
这几乎是我可以从 Qt 文档以及 google 和 SO 给出的信息中自己弄清楚的。 但是,这根本行不通。
我正在测试 TabWidget 内部和外部的小部件,上面的函数为明显不同颜色的小部件返回相同的颜色。 即它总是返回灰色,即使对于选项卡中的纯白色小部件也是如此。
我错过了什么吗?
编辑:
我的问题是,当使用 matplotlib 时,matplotlib 在嵌入 QTabWidget 时绘制具有“无”面颜色和错误背景颜色的图形:灰色,即使父小部件是白色的。
为了解决这个问题,我想获取小部件的背景颜色并将其设置为图形的背景颜色。 虽然这可能是一个 matplotlib 问题,但我猜这将是最快的解决方法。 当我注意到我无法获得正确的颜色时,我变得坚持:)
【问题讨论】:
标签: python qt matplotlib pyqt