Очень сложно (если не невозможно) найти способ получить задний цвет кнопки при нажатии, потому что это зависит от стиля, и не гарантируется, что стиль соответствует палитре.
Однако я предлагаю два различных подхода:
Вы можете установить у вас есть цвет фона с использованием таблиц стилей (простые) или осуществлять покраску кнопки самостоятельно, используя стили или реализовав paintEvent(). См. Customizing QPushButton
Чтобы нарисовать над кнопкой обратный цвет, вы можете установить режим композиции для художника, чтобы получить обратный цвет.
Например:
painter.setPen(QColor(255, 255, 255));
painter.setCompositionMode(QPainter::RasterOp_SourceAndNotDestination);
(заметим, что с помощью этого примера, обратный цвет среднего серого (128, 128, 128) является точно такой же цвет)
Смотрите QPainter::CompositionMode
Добро пожаловать в Stackoverflow. Не могли бы вы объяснить, что вы пытаетесь сделать? Кажется, что получение этого цвета - не очень хорошая идея. Может быть, мы сможем найти лучшее решение вашей первоначальной проблемы? – Ilya
У меня есть подкласс QPushButton, когда кнопка длинным нажата, я хочу нарисовать круг с обратным цветом фона, а внутри - контрольный символ с цветом фона. Другим вариантом для меня является стирание некоторой части круга (создание прозрачной части) для создания галочки. – Toots
То, что я пытаюсь сделать, - это оверлейный круг в моей кнопке с чеком в виде целого в середине. Это для проверенного свойства кнопки, например, с флажком, но я хочу отобразить его как рисунок. – Toots