有時我們需要在qwidget中再嵌入子qwidget,且要求設定父qwidget的背景色,而子qwidget的背景色不變.於是我們寫出了下面的**
intmain
(int
argc,
char
**argv)
然而執行結果不對,子視窗繼承了父視窗的背景顏色,效果如下圖
我們修改一下**,讓setstylesheet只作用于父視窗
intmain
(int
argc,
char
**argv)
");// 設定id對應元素的背景色
qvboxlayout
*layout
=new
qvboxlayout()
; layout
->
addwidget
(sw1);
layout
->
addwidget
(sw2);
pw->
setlayout
(layout);
pw->
resize
(300
,200);
pw->
show()
; return
exec()
; }
再看顯示效果,按鈕的背景色對了,可sw2還是看不到,這是為什麼呢
實際這種結果並不是繼承了父視窗背景色,而是由於了視窗的背景色沒有重新整理,使用setautofillbackground讓sw2自動重新整理背景
intmain
(int
argc,
char
**argv)
");// 設定id對應元素的背景色
qvboxlayout
*layout
=new
qvboxlayout()
; layout
->
addwidget
(sw1);
layout
->
addwidget
(sw2);
pw->
setlayout
(layout);
pw->
resize
(300
,200);
pw->
show()
; return
exec()
; }
最終顯示效果如下
Qt子視窗背景色繼承問題
有時我們需要在qwidget中再嵌入子qwidget,且要求設定父qwidget的背景色,而子qwidget的背景色不變.於是我們寫出了下面的 intmain int argc,char argv 然而執行結果不對,子視窗繼承了父視窗的背景顏色,效果如下圖 我們修改一下 讓setstylesheet...
Qt設定視窗 按鈕背景色
1 設定視窗背景色時使用如下樣式表 background image url img png bj png 使用後如果背景大小不夠會被平鋪。qpushbutton qpushbutton hover 如果視窗已設定背景,則會出現類似父視窗設定時,如果子視窗未設定相應的屬性覆蓋,則子視窗會使用父視窗對...
MFC 設定視窗背景色
若要改變cview,cframewnd或cwnd物件的背景顏色需要處理wm erasebkgnd訊息 wm erasebkgnd true表示已處理背景重新整理 false表示需要在onpaint裡處理 示例 bool cimgview onerasebkgnd cdc pdc q oneraseb...