使用qpalette
設定qpushbutton的背景
,發現未生效。
example
// 獲取按鈕的畫刷
qpalette pal = ui-
>pushbutton-
>
palette()
;// 使用顏色對話方塊選取顏色
qcolor color = qcolordialog::
getcolor
(color);if
(!color.
isvalid()
)return
;// 設定畫刷背景色,並將其應用到按鈕上
pal.
setbrush
(qpalette::background, color)
;ui-
>pushbutton-
>
setpalette
(pal)
;
這應該是新手最常見的錯誤用法
,然而結果並不能如願。
其執行效果如圖所示:
修改**如下:
// 設定按鈕的屬性
ui->pushbutton-
>
setautofillbackground
(true);
// 背景色自動填充
ui->pushbutton-
>
setflat
(true);
// 樣式扁平
// 獲取按鈕的畫刷
qpalette pal = ui-
>pushbutton-
>
palette()
;// 使用顏色對話方塊選取顏色
qcolor color = qcolordialog::
getcolor
(color);if
(!color.
isvalid()
)return
;// 設定畫刷背景色,並將其應用到按鈕上
pal.
setbrush
(qpalette::window, color)
;ui-
>pushbutton-
>
setpalette
(pal)
;
執行程式,效果如下:
這句**是為了防止父控制項的背景色覆蓋該qpushbutton
的背景色
,可能會讓人意外,但實際情況就是如此,一般用qpalette來設定顏色時都需要加上這句。
這句是針對qpushbutton
專門寫的,在qt幫助文件中有說明:
如果去掉
該行**,那麼就只有按鈕邊框會帶有顏色,內部背景色不會生效
。效果如圖所示:
這句**是針對qpushbutton設定背景色
所用的畫刷型別,用其他型別會導致背景色不生效
。
覺得本文章對你有幫助的,可以點讚或加關注哦!一切皆有可能,願世界更美好!
如何有效地報告Bug?
simon首先列舉了一系列拙劣bug報告的例子,包括 接著,他點出了報告bug的目的 在bug報告裡,要設法搞清什麼是事實 例如 我在電腦旁 和 xx出現了 什麼是推測 例如 我想問題可能是出在 如果願意的話,您可以省去推測,但是千萬別省略事實。然後,simon針對bug報告的不同問題分別提出了自己...
如何有效地報告Bug?
作者 崔康 發布於 十月 08,2012 自由軟體開發者simon tatham針對如何有效地報告bug發表了自己的看法,他列舉了一系列拙劣bug報告的例子,並提出了改正建議。simon首先列舉了一系列拙劣bug報告的例子,包括 接著,他點出了報告bug的目的 在bug報告裡,要設法搞清什麼是事實 ...
如何有效地解Bug RED方法
解bug應當是修復 中的缺陷,而不只是隱藏起來 譯註 解bug時常發生分析時總感覺快找到答案了,而後面卻一再陷入僵局。比如,將執行緒同步問題引起的一些時而有,時而沒有的問題。分析時可能會認為這是個典型的執行緒同步問題,a執行緒沒有按照預期的方式改變某個變數,導致了b執行緒處理出錯。這樣的分析結果如果...