qwidget 透明窗體

2021-09-07 23:52:01 字數 750 閱讀 1026

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* )

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

以上方法在windows vista 和ubuntu 9.10上均使用良好。

具體可以看qt qwidget幫助文件。

QWidget背景 透明 問題

2010年12月13日 星期一 11 13 一.背景設定為成黑色,前景色設為白色。方法一 paltette方式,經測試,該方法不會影響到其他控制項,建議使用 qpalette bgpal palette bgpal.setcolor qpalette background,qcolor 0,0 0,...

QWidget實現透明的方式

qwidget實現透明的方式 this setwindowflags qt framelesswindowhint this setattribute qt wa translucentbackground,true 重寫qwidget的paintevent qpaintevent event 函式...

窗體背景透明

一共需要倆個form窗體,我也是看到網上別人的方法進行學習知道的方法 1,第一層窗體 1 成透明this.opacity 0.9,這個透明度由自己的需求來設定 2 設定成無邊框屬性this.formborderstyle formborderstyle.none 3 到屬性面板裡面找到locked,...