QLabel控件实现圆形头像显示

有时候需要绘制类似qq头像的圆形头像,可以利用QT中2D绘图的API实现。

效果图:

QLabel控件实现圆形头像显示_第1张图片

具体代码如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 
#include 
#include 
#include 

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{

    ui->setupUi(this);

    //设置椭圆的长轴、短轴
    int w = ui->label->width();
    int h = ui->label->height();

    QPixmap pixmapa("head.jpg");
    QPixmap pixmap(w,h);
    pixmap.fill(Qt::transparent);
    QPainter painter(&pixmap);
    painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
    QPainterPath path;
    path.addEllipse(0, 0, w, h);    //绘制椭圆
    painter.setClipPath(path);
    painter.drawPixmap(0, 0, w, h, pixmapa);

    ui->label->setPixmap(pixmap);

}

MainWindow::~MainWindow()
{
    delete ui;
}

 

你可能感兴趣的:(qt)