QT下的幾種透明效果

2021-08-31 04:15:51 字數 751 閱讀 2474

1.視窗整體透明,但是窗體上的控制項不透明。

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

qpalette pal = palette();

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

setpalette(pal);

試驗效果:

窗體標題欄不透明;

窗體客戶區上的控制項不透明,qlabel控制項只是字顯示,控制項背景色透明;

窗體客戶區完全透明。

另外從網上看到的方法:

setattribute(qt::wa_translucentbackground, true);

試驗的結果是類似於上面的方法,但有時候窗體會被一些雜色斑點填充,未找到原因。

2.視窗及其上面的控制項都半透明:

setwindowopacity(0.7)

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

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

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

void testwindow::paintevent( qpaintevent* )

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

以上實驗均是基於directfb的qte測試。在linux下及windows下效果會略有不同。

比如在windows下第3個實驗,繪製區域就是乙個黑窟窿,如果window本身半透,則是window下面的內容加上半透效果,不是全透明效果。

QT下的幾種透明效果

1.視窗整體透明,但是窗體上的控制項不透明。通過設定窗體的背景色來實現,將背景色設定為全透。試驗效果 窗體標題欄不透明 窗體客戶區上的控制項不透明,qlabel控制項只是字顯示,控制項背景色透明 窗體客戶區完全透明。另外從網上看到的方法 true 試驗的結果是類似於上面的方法,但有時候窗體會被一些雜...

QT下的幾種透明效果

1.視窗整體透明,但是窗體上的控制項不透明。通過設定窗體的背景色來實現,將背景色設定為全透。試驗效果 窗體標題欄不透明 窗體客戶區上的控制項不透明,qlabel控制項只是字顯示,控制項背景色透明 窗體客戶區完全透明。另外從網上看到的方法 true 試驗的結果是類似於上面的方法,但有時候窗體會被一些雜...

QT下的幾種透明效果

1.視窗整體透明,但是窗體上的控制項不透明。通過設定窗體的背景色來實現,將背景色設定為全透。試驗效果 窗體標題欄不透明 窗體客戶區上的控制項不透明,qlabel控制項只是字顯示,控制項背景色透明 窗體客戶區完全透明。另外從網上看到的方法 true 試驗的結果是類似於上面的方法,但有時候窗體會被一些雜...