兩個控制項層疊,上面的那個半透明。
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...