Qt中設定視窗邊框的圓形

2021-09-25 03:44:50 字數 1468 閱讀 9209

qt在設定視窗邊框圓角時有兩種方式,一種是設定樣式,另一種是在paintevent事件中繪製視窗。

下面分別敘述用這兩種方式來實現視窗邊框圓角的效果。

this->setstylesheet(「qwidget」)); 

使用的主要是使用border-radius 屬性,關於這個屬性,可選的樣式有 

border-top-left-radius 設定左上角圓角; 

border-top-right-radius 設定右上角圓角; 

border-bottom-left-radius 設定左下角圓角; 

border-bottom-right-radius 設定右下角圓角; 

border-radius 設定四個角圓角;

關於border-radius 後面的引數 

(1)乙個引數 

(2)兩個引數 

border-radius: 15px 50px 

第乙個引數設定x軸方向的半徑 

第二個引數設定y軸方向的半徑 

從圖中可以看出設定乙個引數代表x軸和y軸設定了同樣的值,而兩個引數分別為x軸和y軸方向的半徑。大家可以根據不同需要去設定引數。

這裡我們需要重寫paintevent方法,具體**如下:

如果不寫painter.setrenderhint(qpainter::antialiasing);則圓角會出現鋸齒,如下圖。 

仔細對比上圖可以看見圓角曲線有鋸齒狀。

(1)在使用這兩種方法的時候需要設定視窗的屬性。

this->setattribute(qt::wa_translucentbackground);//設定視窗背景透明

this->setwindowflags(qt::framelesswindowhint); //設定無邊框視窗

(2)主窗體載入不了樣式時需要在paintevent事件中加上如下**。

原始圖設定無邊框或者背景透明可以去掉白色方框給按鈕設定如下樣式即可。 

或者 

Qt 設定視窗邊框的圓角

一 通過qss border top left radius 設定左上角圓角 border top right radius 設定右上角圓角 border bottom left radius 設定左下角圓角 border bottom right radius 設定右下角圓角 border rad...

Qt之設定視窗邊框的圓角

一 第乙個方法就是重寫paintevent方法,繪畫中將其設定為圓角,具體 如下 void paintevent qpaintevent event qwidget paintevent event 注意 1 在使用這兩種方法的時候需要設定視窗的屬性。this setattribute qt wa ...

Qt 不規則視窗 視窗邊框隱藏,並能拖動

qt 不規則視窗 實現不規則視窗,並能拖動 vqshapewidget.h ifndef vqdragablewidget h define vqdragablewidget h include qwidget class vqshapewidget public qwidget endif vqd...