QT 繼承QWidget 設定樣式無效解決

2021-08-04 09:27:22 字數 527 閱讀 3750

在繼承qwidget時,我們在設定樣式表時,不會有效果。原因在於 qwidget的paintevent函式實現為空。

此時,需要讓樣式表生效,有兩種方法:

不繼承qwidget,繼承qframe。因為qframe 的自帶paintevent函式已做了實現,在使用樣式表時會進行解析和繪製。

實現qwidget的paintevent函式時,使用qstylepainter繪製:

void clgwidgetbasic::paintevent(qpaintevent *event)

這裡的qstyleoption .rect為 樣式生效的區域,可以根據需要調整。

設定樣式:

clgwidgetbasic *widget=new clgwidgetbasic(this);

widget->setstylesheet( " background-color:red;" );

建議採用第二種方式。

Qt 設定QWidget背景色

qt設定qwidget背景顏色的方法測試了三種,推薦第一種。一 使用qpalette qpalette palette palette.setcolor qpalette background,qt yellow this setautofillbackground true this setpal...

Qt之設定QWidget背景色

qwidget是所有使用者介面物件的基類,這意味著可以用同樣的方法為其它子類控制項改變背景顏色。qt中視窗背景的設定,下面介紹三種方法。使用qpalette 使用style sheet 繪圖事件 一般我不用qss設定視窗背景,也不建議使用。這裡是對於視窗而,如果是子部件當然可以 因為視窗使用qss設...

QT設定滑鼠樣式

3 使用xpm生成滑鼠樣式 qt內建基本的滑鼠樣式,使用函式qcursor qt cursorshape shape 進行設定。對於不同作業系統來說,設定的qt滑鼠樣式會被替換成當前系統支援的滑鼠樣式效果。qt內建的滑鼠樣式 cursorshape 如下 比如設定滑鼠樣式為qt pointingha...