QT 圆形头像绘制方法

QT 圆形头像绘制方法

目标效果:
圆形头像.png

方法一:

将目标图像转换成圆形。根据图像得到圆形的Pixmap,再将pixmap绘制到label上。
这种方法的优点是不必在意绘制的label的形状是什么。相当于目标图片被裁切成背景透明的圆形图片。

//载入图片
QString path = "D:/123.jpg";
QPixmap pixmap(path);
pixmap = pixmap.scaled(ui.label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);

int width = ui.label->size().width();
int height = ui.label->size().height();

QPixmap image(width,height);
image.fill(Qt::transparent);

QPainterPath painterPath;
painterPath.addEllipse(0, 0, width, height);

QPainter painter(&image);
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
painter.setClipPath(painterPath);
painter.drawPixmap(0, 0, width, height, pixmap);
//绘制到label
ui.label->setPixmap(image);

注意:
1.这里的label是高宽相等的;
2.这里的label设置了背景透明。

方法二:

将要显示图像的label设置成圆形。
设置样式:

border-radius: 40px;
border-image: url(D:/123.jpg);

其中40是圆形半径(正方形边长的一半)。一个80*80的label,设置样式border-radius: 40px;,就会变成圆形:
圆形label.png
再为其贴个图,设置border-image属性即可。
圆形图像.png
如果只是要一个圆形的图标,图片内容不会怎么改变,可以使用这种方法,设置比较简单。
但如果图片在程序运行期间时常改变,建议使用第一种方法。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值