Qt 設定視窗邊框的圓角

2021-09-24 22:37:30 字數 1525 閱讀 2497

一、通過qss

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

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

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

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

border-radius 設定四個角圓角;

paintevent()需要加如下**

qwidget::paintevent(event);

qpainter painter(this);

qstyleoption opt;

opt.init(this);

style()->drawprimitive(qstyle::pe_widget, &opt, &painter, this);

完成!!

二、通過paintevent()

1、qwidget::paintevent(event);

qpainter painter(this);

painter.setrenderhint(qpainter::antialiasing);  // 反鋸齒;

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

painter.setpen(qt::transparent);

qrect rect = this->rect();

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

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

painter.drawroundedrect(rect, 15, 15);

2、通過qpainterpath

qwidget::paintevent(event);

qpainter painter(this);

painter.setrenderhint(qpainter::antialiasing);  // 反鋸齒;

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

painter.setpen(qt::transparent);

qrect rect = this->rect();

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

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

qpainterpath painterpath;

painterpath.addroundedrect(rect, 15, 15);

painter.drawpath(painterpath);

總結:上述兩種方式都行,但建構函式別忘了新增

setwindowflags(qt::framelesswindowhint);   //設定無邊框

setattribute(qt::wa_translucentbackground);  //設定背景透明

Qt之設定視窗邊框的圓角

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

Qt中設定視窗邊框的圓形

qt在設定視窗邊框圓角時有兩種方式,一種是設定樣式,另一種是在paintevent事件中繪製視窗。下面分別敘述用這兩種方式來實現視窗邊框圓角的效果。this setstylesheet qwidget 使用的主要是使用border radius 屬性,關於這個屬性,可選的樣式有 border top...

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

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