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);

相关推荐
luj_17684 小时前
星火科技助力边远地区防病攻坚
c语言·开发语言·c++·经验分享·算法
zmzb01035 小时前
C++课后习题训练记录Day175
开发语言·c++
啦啦啦啦啦zzzz6 小时前
工具:动态类工厂和用配置文件存储属性
c++·设计模式·工具·动态工厂
脱胎换骨-军哥6 小时前
C++ 代码规范与格式化指南
开发语言·c++·代码规范
迷途之人不知返8 小时前
lambda表达式
c++
@三十一Y8 小时前
C++:红黑树的实现
开发语言·c++
_wyt0018 小时前
拓扑排序:有向无环图的排队艺术
c++·拓扑排序·队列
皓月斯语8 小时前
B2118 验证子串
c++·题解
乐观勇敢坚强的老彭8 小时前
C++信奥:开关门、开关灯问题
开发语言·c++·算法
2301_777998349 小时前
C/C++:预处理详解
c语言·c++