2012-04-26 2 views

ответ

0

Одним из вариантов было бы подкласс QPushButton и переопределить его paintEvent (QPaintEvent *) метод с вашей собственной реализации, что дает ему взгляд, который вы хотите дать.

В качестве альтернативы, вы можете создать подкласс QCommonStyle (или QWindowsStyle или т.п.) и передать его qApp-> SetStyle(), и переопределить метод drawControl(), так что, когда drawControl вызывается с элементом CE_PushButtonBevel, было бы вызвать к суперклассу, используя отдельный аргумент QStyleOptionButton, который не включает установленные биты State_Sunken или State_On. (Вероятно, потребуется немного изучить метод drawControl() суперкласса, чтобы точно определить, что необходимо для получения желаемого эффекта).

3

Решение, которое легко установить (но может не обеспечить точно, что вы хотите) было бы использовать Qt Style Sheet.

С таблицами стилей вы можете указать цвет фона для кнопки pressed state. Выполнение этого будет подавлять отступ. Например:

pMyPushButton->setStyleSheet("QPushButton:pressed { background-color : red; }");