QT自定义控件之圆形头像的实现

我们经常浏览网页都会看到很多地方使用了圆形的头像,最常见的无外乎QQ软件中的联系人头像了,还是截个图看一下好了,来来来,上图…………

啦啦啦

有木有看到???

好了,接下来我们来说一下如何实现这个圆形头像,之前笔者搜索网上看到实现思路基本上都是通过图片遮罩来实现的,在这里笔者就不予置评了,其实Qt已经很完善的内置了很多的API,如果你对Qt的2D绘图比较熟悉的话几行代码就可以实现了额!

好了我们上代码:

void paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.setRenderHints(QPainter::Antialiasing,true);
    QPixmap pixmap(":/images/avatar.jpg");

    QPainterPath path;
    path.addEllipse(r.center(),radius,radius);
    painter.setClipPath(path);

    painter.drawPixmap(QRect(width()/2-radius,height()/2-radius,radius*2,radius*2),pixmap);
}

就这么几行代码就可以实现以下的效果了哦!

QT自定义控件之圆形头像的实现_第1张图片

你可能感兴趣的:(QT开发笔记)