給QT不規則視窗新增陰影

2022-02-20 13:02:44 字數 670 閱讀 3480

在家休息,試著用qt去模仿各類管家軟體的介面,做到自繪陰影的時候,蛋疼了。

網上搜到的基本都是一篇文章轉來轉去,一開始也被思路限制了。

嘗試過載paintevent,然後自己繪製矩形陰影,但是繪製的演算法始終覺得有問題,最後發現 qgraphicsdropshadoweffect 這個乙個好東西,雖說網上有提到,但是基本都是用它來繪製子控制項陰影,所以我好奇,為什麼不直接放個qframe在視窗中間,四邊留出陰影位置,主視窗背景設定為透明,qfram設定陰影效果不就ok了?

說幹就幹,**摘要如下:

mainwindow::mainwindow(qwidget *parent) :

qmainwindow(parent),

ui(new ui::mainwindow)

frame控制項裡設定樣式表

qframe
介面編輯狀態

與tx管家對比

總體來說效果還算不錯吧(主要是用著省事)有更好的方式歡迎討論

QT中不規則視窗的實現

描述 mask.png 視窗掩碼圖 描述 toolbutton.png 按鈕背景圖 描述 toolbutton mask.png 按鈕掩碼圖 描述 runtime.png 示例執行時圖 qt 中不規則窗體和部件的實現,不管是窗體還是部件,都是從qwidget派生而來的,所以它們的原理是一樣的,都是設...

Qt繪製形狀不規則視窗(二)

環境配置 mingw qt 5.12 效果圖 紅色部分是桌面背景顏色 下面這張有助於分析 視窗邊角弧度border radius沒有註明 testarrowwidget類繼承自qwidget define shadow width 10 視窗陰影寬度 define width 15 小三角的寬度 d...

MFC不規則視窗

直接在onpaint 函式裡新增語句 setwindowlong m hwnd,gwl exstyle,getwindowlong m hwnd,gwl exstyle ws ex layered setlayeredwindowattributes rgb 255,255,255 0,lwa co...