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