Qt将图片绘制成圆形

cpp 复制代码
QPixmap roundedPixmap(const QPixmap& src, QSize size, int radius) {
    QPixmap scaled = src.scaled(size, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
    QPixmap dest(size);
    dest.fill(Qt::transparent);

    QPainter painter(&dest);
    painter.setRenderHint(QPainter::Antialiasing);
    QPainterPath path;
    path.addRoundedRect(0, 0, size.width(), size.height(), radius, radius);
    painter.setClipPath(path);
    painter.drawPixmap(0, 0, scaled);

    return dest;
}

QPixmap rounded = roundedPixmap(QPixmap("xxx.jpg"), ui->portrait_label->size(), 20); // 设置圆角半径

ui->portrait_label->setPixmap(rounded);

相关推荐
旖旎夜光3 小时前
多态(11)(下)
c++·学习
yangpipi-3 小时前
《C++并发编程实战》 第4章 并发操作的同步
开发语言·c++
mengzhi啊3 小时前
qt更改背景颜色的动画
qt
Chance_to_win3 小时前
C++基础知识
c++
有趣的我4 小时前
C++ 多态介绍
开发语言·c++
WBluuue4 小时前
Codeforces 1068 Div2(ABCD)
c++·算法
阿沁QWQ5 小时前
C++的map和set
开发语言·c++
charlie1145141917 小时前
现代C++工程实践:简单的IniParser3——改进我们的split
开发语言·c++·笔记·学习
fish_xk7 小时前
c++的引用和类的初见
开发语言·c++
晨尘光8 小时前
【Windows 下FlatBuffers 编译.fbs文件并应用】
c++·windows