Qt之設定QWidget背景色

2022-04-29 19:15:09 字數 1094 閱讀 4380

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 ...