一.前言
设置无边框窗口之后,就会显示直角的风格,有用户反馈说,看着太锐了,让我给换成圆角,看着舒服一点,楼主一开始想用Qss实现,发现实在不行,后边想着,估计只能用绘图事件来操作了
二.实现过程
1.实现窗口无边框效果
setWindowFlag(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
2.重写paintEvent(方式1与方式2的效果是一样的)
void ImageListWidget::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing); // 设置抗锯齿,不然边框会有明显锯齿
painter.setBrush(Qt::white); // 设置窗体颜色
QRect rect = this->rect();
// 绘制方式1
painter.drawRoundedRect(rect,10,10);
// 绘制方式2
// QPainterPath painterPath;
// painterPath.addRoundedRect(rect, 10, 10);
// painter.drawPath(painterPath);
}