2012-04-26 59 views

回答

0

一種選擇是子類QPushButton並覆蓋其的paintEvent(QPaintEvent *)方法用你自己的實現,賦予其你想給它的樣子。或者,您可以創建QCommonStyle(或QWindowsStyle等)的子類並將其傳遞給qApp-> setStyle(),並覆蓋drawControl()方法,以便在使用元素CE_PushButtonBevel調用drawControl時,它會調用到使用不包括State_Sunken或State_On位設置的單獨QStyleOptionButton參數的超類。 (這可能需要對超類的drawControl()方法進行一些檢查,以確定得到所需效果的必要條件)。

3

一個易於使用的解決方案(但可能不提供,正好你想要的)將使用Qt Style Sheet

使用樣式表,可以爲按鈕的pressed state指定背景顏色。這樣做會壓縮縮進。例如:

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