Как я могу получить нажатый цвет фона QPushButton?
if (isDown())
_BGColor = <pressed background color>; // how to get this???
else
_BGColor = palette().color(QPalette::Background); // this is to get the idle backcolor
Заранее спасибо!!!
Как я могу получить нажатый цвет фона 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.
update()
и/илиrepaint()
вышеsetDown(true)
, но не получил текущее значение цвета фона. - person Toots   schedule 08.04.2016