Qt笔记(六十)之Qt实现无边框圆角窗口

一.前言
设置无边框窗口之后,就会显示直角的风格,有用户反馈说,看着太锐了,让我给换成圆角,看着舒服一点,楼主一开始想用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);
}

在这里插入图片描述


版权声明:本文为Joker__123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。