QT—— 将方形图片转为圆形,在label上进行显示

复制代码
QPixmap DefinedTitleBar::PixmapToRound(QPixmap& src, int radius)  //将方形图片转为圆形,在label上进行显示
{
    if (src.isNull()) {
        return QPixmap();
    }

    QSize size(2 * radius, 2 * radius);
    QBitmap mask(size);
    QPainter painter(&mask);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.setRenderHint(QPainter::SmoothPixmapTransform);
    painter.fillRect(0, 0, size.width(), size.height(), Qt::white);
    painter.setBrush(QColor(0, 0, 0));
    painter.drawRoundedRect(0, 0, size.width(), size.height(), 99, 99);

    QPixmap image = src.scaled(size);
    image.setMask(mask);
    return image;
}
复制代码

使用(放到构造函数里调用即可)

复制代码
void DefinedTitleBar::_label_show_picture()//,让label显示一张图片
{

    //userPath为图片地址
    QPixmap pixmap_userIcon;
    pixmap_userIcon.load(IMAGE_PATH("suzhouregongyuan.jpg"));
    //将图片剪裁压缩成20x20大小的图
    QPixmap fitpixmap_userIcon = pixmap_userIcon.scaled(58, 58, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
    fitpixmap_userIcon = PixmapToRound(fitpixmap_userIcon, 28);
    ui.label_ico->setPixmap(fitpixmap_userIcon);
}
复制代码

 原文链接

posted @   雾枫  阅读(729)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
点击右上角即可分享
微信分享提示