Qt 中設定窗體透明度的幾種方法

2021-07-09 06:32:48 字數 636 閱讀 3885

1、設定窗體的背景色

在建構函式裡新增**,需要新增標頭檔案qpalette或qgui 

qpalette pal = palette(); 

pal.setcolor(qpalette::background, qcolor(0x00,0xff,0x00,0x00)); 

setpalette(pal);

通過設定窗體的背景色來實現,將背景色設定為全透。

效果:視窗整體透明,但視窗控制項不透明,qlabel控制項只是字顯示,控制項背景色透明;

窗體客戶區完全透明。

2、使用函式setattribute(qt::wa_translucentbackground, true);

同樣在建構函式中,效果和第一種方法相同。

3、視窗及其上面的控制項都半透明:

setwindowopacity(0.7)

這個函式可以分10個等級調整透明度,配合qslider控制項可以做成控制條

效果:視窗及控制項都半透明。

4.視窗整體不透明,區域性透明:

在paint事件中使用clear模式繪圖。

void testwindow::paintevent( qpaintevent* )

試驗效果:繪製區域全透明。如果繪製區域有控制項不會影響控制項。

Qt 中設定窗體透明度的幾種方法

1 設定窗體的背景色 在建構函式裡新增 需要新增標頭檔案qpalette或qgui qpalette pal palette pal.setcolor qpalette background,qcolor 0x00,0xff,0x00,0x00 setpalette pal 通過設定窗體的背景色來實...

Qt 中設定窗體透明度的幾種方法

第一種和第二種視窗必須是無邊框,也就是setwindowflags qt framelesswindowhint 視窗整體透明,但是窗體上的控制項不透明。通過設定窗體的背景色來實現,將背景色設定為全透。試驗效果 窗體標題欄不透明 窗體客戶區上的控制項不透明,qlabel控制項只是字顯示,控制項背景色...

Qt 中設定窗體透明度的幾種方法

在建構函式裡新增 需要新增標頭檔案qpalette或qgui qpalette pal palette pal.setcolor qpalette background,qcolor 0x00,0xff,0x00,0x00 setpalette pal 通過設定窗體的背景色來實現,將背景色設定為全透...