Qt5 圓角加陰影視窗簡單實現
阿新 • • 發佈:2019-01-28
實現圓角加陰影的視窗,基本思路是利用QFrame,把QFrame通過改變QSS樣式變成圓角,然後利用QGraphicsDropShadowEffect給QFrame設定陰影
首先向ui檔案裡的Widget託人個QFrame,然後把QFrame放到中間,與Widget上下左右都隔開10px,隔開出來的10px用來做陰影區,然後右鍵QFrame選擇改變樣式表,樣式表為
background-color: rgb(0, 255, 255);//QFrame的顏色
border-top-left-radius:10px;//左上圓角
border-top-right-radius:10px;//右上圓角
border-bottom-left-radius:10px;//左下圓角
border-bottom-right-radius:10px;//右下圓角
效果如下
然後需要在建構函式裡新增
setWindowFlags(Qt::FramelessWindowHint);//設定無標題
setAttribute(Qt::WA_TranslucentBackground);//設定視窗透明
然後為QFrame新增陰影效果
QGraphicsDropShadowEffect*effect=newQGraphicsDropShadowEffect;
effect->setOffset(4,4);
effect->setColor(QColor(0,0,0,50));
effect->setBlurRadius (10);
ui->frame->setGraphicsEffect(effect);
執行後效果如下
本人新手一個,如果大牛知道有更好的方法,歡迎評論