Qt視窗半透明不成功的情況

2021-10-01 18:35:51 字數 676 閱讀 5214

兩個控制項層疊,上面的那個半透明。

ui->pushbutton->

setattribute

(qt:

:wa_translucentbackground, true)

; ui->pushbutton->

setstylesheet

("background-color: rgba(0, 255, 255, 128);"

);

這樣就能看到底下的控制項了

一般情況下是正常的的。

但是有種情況,

如果底下的控制項使用了

hwnd w = (hwnd)t_videowindowinfo.winhandle.handle.window;

hwnd new_parent = (hwnd)m_pcamerapreviewwidget->getinterwidget()->winid();

setparent(w,new_parent);

就是 setparent,這裡之後控制項的許可權就交給系統,qt就管不著了。

結果就是,半透明失效了。直接遮擋了。

這裡我放棄了。

Qt視窗設定半透明

1.從mainwindows繼承的視窗 直接用setwindowopacity 0.9 引數為透明度,範圍0 1。2.程式中彈出的視窗,繼承自qdialog,要使用無邊框視窗設定了framelesswindowhint屬性,但是發現framelesswindowhint屬性和透明度函式有衝突,無法設...

半透明視窗的實現

在上篇 關於視窗嵌入桌面及透明的注意事項 提到 setlayeredwindowattributes 會使視窗上的控制項也一起被透明化 網上搜了一下,也沒有比較好的解決辦法 似乎唯一的解決辦法就是 在視窗後面再貼個透明視窗。步驟 1.使用 setwindowrgn 將沒有控制項的區域鏤空 2.建立乙...

Layered Windows視窗的半透明效果

首先要做的就是在createwindowex 時加入ws ex layered風格。之後呼叫setlayeredwindowattributes 該函式原型如下 bool winapi setlayeredwindowattributes in hwnd hwnd,視窗控制代碼 in colorre...