Изменение цвета QPushButton при нажатии - PullRequest
1 голос
/ 08 февраля 2011

Есть ли способ изменить цвет фона QPushButton, который нажимается путем изменения его объекта QPalette?Я понимаю, что это можно сделать с помощью таблиц стилей, но хотел бы сделать это, изменив QPalette.Нечто подобное тому, как можно изменить цвет фона кнопки, когда она не нажата:

QPushButton myButton;
QPalette p(myButton.palette());

p.setColor(QPalette::Button, QColor("#ffffff"));
myButton.setPalette(p);

Ответы [ 4 ]

2 голосов
/ 26 сентября 2013

Просто добавьте таблицу стилей к самой кнопке qbush или к его родительскому qwidget:

qwidget.setStyleSheet("QPushButton:checked { background-color: red; }")

При установке флажка QPushButton будет установлен красный цвет фона.

2 голосов
/ 08 февраля 2011

Подключитесь к сигналу selected () QPushButton, обновите палитру нужным цветом, затем подключитесь к сигналу release () и переключите цвет на старый цвет.Это должно сделать это.

Возможно, вы захотите запустить update () после настройки цветов или в крайних случаях repaint () .

1 голос
/ 08 февраля 2011

Подключите к кнопке нажатый сигнал и установите палитру в подключенном слоте.Возможно, вам придется позвонить repaint() для немедленного обновления.

0 голосов
/ 08 февраля 2011

вы можете установить таблицу стилей для кнопки, когда она нажата .. вот пример рассказывает, как установить таблицу стилей для кнопки ... но в вашем случае вам нужно иметь две разные таблицы стилей, одна нажмите и аналогично, когда она отпущена, вы должны выполнить сброс с другой таблицей стилей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...