一、通過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...