如何获得QPushButton的按下背景颜色?
if (isDown())
_BGColor = <pressed background color>; // how to get this???
else
_BGColor = palette().color(QPalette::Background); // this is to get the idle backcolor
提前致谢!!!
答案 0 :(得分:1)
在按下按钮时找到按钮的背景颜色非常困难(如果不是不可能),因为它取决于样式,并且不能保证样式尊重调色板。
但我建议采用两种不同的方法:
您可以使用样式表(更简单)设置自己的背景颜色,或者自己使用样式或重新实现paintEvent()来实现按钮的绘制。请参阅Customizing QPushButton
要使用反色绘制按钮,可以为画家设置合成模式以获得反色。
例如:
painter.setPen(QColor(255, 255, 255));
painter.setCompositionMode(QPainter::RasterOp_SourceAndNotDestination);
(请注意,使用此示例,中间灰色(128,128,128)的反色颜色完全相同)