一、通过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的QSS样式和paintEvent函数来创建带有圆角效果的窗口。通过调整border-radius属性和利用QPainter绘制圆角矩形,可以轻松实现窗口的美化效果。同时,介绍了设置窗口为无边框和背景透明的方法。
6万+

被折叠的 条评论
为什么被折叠?



