qwidget是所有使用者介面物件的基類,這意味著可以用同樣的方法為其它子類控制項改變背景顏色。
qt中視窗背景的設定,下面介紹三種方法。
使用qpalette
使用style sheet
繪圖事件
一般我不用qss設定視窗背景,也不建議使用。(這裡是對於視窗而,如果是子部件當然可以)。因為視窗使用qss設定背景之後,若子部件不使用同樣的方式來設定,預設則會繼承父視窗的樣式。
使用qpalette來設定背景色
m_pwidget =
new qwidget(this);
m_pwidget->setgeometry(0, 0, 300, 100);
qpalette pal(m_pwidget->palette());
//設定背景黑色
pal.setcolor(qpalette::background, qt::black);
m_pwidget->setautofillbackground(true);
m_pwidget->setpalette(pal);
m_pwidget->show();
使用樣式表來設定背景色,可以參考:qt style sheets文件
m_pwidget =
new qwidget(this);
m_pwidget->setgeometry(0, 0, 300, 100);
m_pwidget->setstylesheet("background-color:black;");
m_pwidget->show();
如果從qwidget子類化乙個widget,為了能夠使用樣式表則需要為自定義widget提供paintevent事件。
void
customwidget::paintevent(qpaintevent *event)
重寫paintevent,使用qpainter來繪製背景。
void widget::paintevent(qpaintevent *event)
Qt 設定QWidget背景色
qt設定qwidget背景顏色的方法測試了三種,推薦第一種。一 使用qpalette qpalette palette palette.setcolor qpalette background,qt yellow this setautofillbackground true this setpal...
Qt設定視窗 按鈕背景色
1 設定視窗背景色時使用如下樣式表 background image url img png bj png 使用後如果背景大小不夠會被平鋪。qpushbutton qpushbutton hover 如果視窗已設定背景,則會出現類似父視窗設定時,如果子視窗未設定相應的屬性覆蓋,則子視窗會使用父視窗對...
linux下qt設定背景色
如果通過樣式qss來設定,需要過載paintevent函式。不管那個版本的qt include include void paintevent qpaintevent void picture paintevent qpaintevent 還有一種方法就是通過 使用qpalette來設定背景色 m ...