Как я могу получить нажатый цвет фона 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) точно такой же)
Увидеть QPainter :: CompositionMode
Других решений пока нет …