前言
本文章介绍使用QQuickPaintedItem
绘制自定义的qml类型。
QQuickPaintedItem类需要重写paint函数,在重写的paint函数里使用QPainter进行绘制
一、创建QQuickPaintedItem
创建一个QQuickPaintedItem子类,本文示例绘制一个BandPower图元来示例
cbandpoweritem.h
//cbandpoweritem.h
#ifndef CBANDPOWERITEM_H
#define CBANDPOWERITEM_H
#include <QQuickPaintedItem>
#include "PropertyHead.h"
class CBandPowerItem : public QQuickPaintedItem
{
Q_OBJECT
BJ_PROPERTY(double,centerFreqPos)
BJ_PROPERTY(double,spanFreqPos)
BJ_PROPERTY(double,bandPowerPos)
public:
CBandPowerItem(QQuickItem *parent = nullptr);
virtual void paint(QPainter *painter);
};
#endif // CBANDPOWERITEM_H
代码中的BJ_PROPERTY
是一个自定义属性的宏,包括set,get和信号的宏,感兴趣的可以跳转Qt自定义属性宏这里去看,了解宏的使用。
cbandpoweritem.cpp
//cbandpoweritem.cpp
#include