QT 設定視窗陰影,設定視窗圓角

2021-09-30 19:24:22 字數 738 閱讀 4986

qt開發過程中,新增過自定義標題欄後,因為設定了 

setwindowflags(qt::framelesswindowhint);

屬性,widget介面後面陰影沒有了。

現在使用paint的方法繪製陰影和視窗圓角,一方面能設定陰影,一方面可解決設定的視窗圓角後,仍殘留四個小角的問題。

廢話不說 ,上**:

先設定屬性:

setattribute(qt::wa_translucentbackground, true);

然後:void paintevent(qpaintevent *event)

painter.setrenderhint(qpainter::antialiasing);

painter.setbrush(qbrush(qt::white));

painter.setpen(qt::transparent);

qrect rect = this->rect();

rect.setx(5);

rect.sety(5);

rect.setwidth(rect.width() - 5);

rect.setheight(rect.height() - 5);

// rect: 繪製區域  15:圓角弧度

painter.drawroundedrect(rect, 5, 5);

}paintevent 只是一種解決方法,拋磚引玉,還有什麼方法可以分享下。

希望能幫到你。

qt 設定視窗圓角

最近在用qss做介面美化的工作,發現乙個問題就是qss不能對頂級視窗設定邊角圓弧,於是得另闢蹊徑。據網上搜尋可得到的方法我實現了三種 cpp view plain copy setwindowflags qt framelesswindowhint qbitmap bmp this size bmp...

Qt設定彈出視窗背景陰影效果

通過maskwidget來實現,原理如下 1.設定要遮擋的窗體 一般是主視窗 2.設定目標視窗,並繫結該視窗的顯示事件,一旦目標顯示,陰影視窗就顯示 反則同樣 3.完成陰影效果。據觀察存在一定問題,目標視窗的父視窗問題,工作列會有兩個視窗圖示如 直接插入 maskwidget.h ifndef ma...

QT圓角視窗

以前寫的qt圓角都是在paintevent中繪製圓角背景,但是如果圓角附近需要放控制項,控制項就會因為自己的重繪而跑到圓角的外面去了,還有一種辦法就是設定setmask,自己控制 需要顯示,不需要顯示,bmp填充為乙個黑色圓角矩形,就能讓視窗的可見區域侷限於圓角矩形內,即使控制項越界也不會顯示出來。...