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

2021-09-22 12:40:23 字數 693 閱讀 1394

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

qpalette pal = palette(); 

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

setpalette(pal);

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

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

窗體客戶區完全透明。

setattribute(qt::wa_translucentbackground, true);
【注】qt5 必須放在 ui->setupui(this) 前;

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

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

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

在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 中設定窗體透明度的幾種方法

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

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

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