Qt5 圓角加陰影窗口簡單實現
阿新 • • 發佈:2018-11-23
tof roc proc 中間 運行 右鍵 term win alt 實現圓角加陰影的窗口,基本思路是利用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 = new QGraphicsDropShadowEffect; effect->setOffset(4,4); effect->setColor(QColor(0,0,0,50)); effect->setBlurRadius(10); ui->frame->setGraphicsEffect(effect);
運行後效果如下
Qt5 圓角加陰影窗口簡單實現