QML圆形头像(二)继承QQuickPaintedItem抗锯齿效果更好

qml圆形头像(一)—— 使用蒙板
https://blog.csdn.net/hp_cpp/article/details/91379356
这篇用qml实现了圆形头像的效果,但是锯齿较为严重。

用C++类继承QQuickPaintedItem,然后重写void paint(QPainter *painter);
这样也可以实现圆形头像的效果,不需要用qml中的蒙板,而且抗锯齿效果更好。
circleHead.h

#ifndef CIRCLEHEAD_H
#define CIRCLEHEAD_H

#include <QtQuick/QQuickPaintedItem>
#include <QColor>

class CircleHead : public QQuickPaintedItem // 为了基于QPainter API实现自定义的绘制效果,我们需要继承这个类。如果不需要使用QPainter API,我们可以继承QQuickItem,甚至如果连可视化也不需要,QObject以及它的子类都可以作为我们继承的对象
{
   
    Q_OBJECT                              // 因为需要使用到Qt的元对象系统
    Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged)

public:
    CircleHead(QQuickItem *parent = nullptr);  // 作为可视化组件我们需要将其父对象设置为QQuickItem
    QString source() const;
    void setSource(const QString &source);

    void paint(QPainter *painter);         // 最后我们重载QQuickPaintedItem的paint函数,实现我们的自定义绘图

signals:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值