[QML开发笔记]-QML扩展插件二(C++绘制控件库)
QML扩展控件方法:通过c++绘制控件并生成库供QML使用。实现QML集成QWidget自绘制控件生成的库。
效果:
代码:
AnalogClock.h
#ifndef ANALOGCLOCK_H
#define ANALOGCLOCK_H
/**
* @FileName AnalogClock.h
* @brief File Description
* @author Kongdemin
* @date 2020-05
*/
#include <QQuickItem>
#include <QQuickPaintedItem>
class AnalogClock : public QQuickPaintedItem
{
Q_OBJECT
Q_PROPERTY(QColor hourColor READ hourColor WRITE setHourColor NOTIFY hourColorChanged)
Q_PROPERTY(QColor minuteColor READ minuteColor WRITE setMinuteColor NOTIFY minuteColorChanged)
Q_PROPERTY(QColor secColor READ secColor WRITE setSecColor NOTIFY secColorChanged)
Q_PROPERTY(QColor bgColor READ bgColor WRITE setBgColor NOTIFY bgColorChanged)
public:
AnalogClock(QQuickItem *parent = nullptr);
QColor hourColor() const { return m_hourColor; }
QColor minuteColor() const { return m_minuteColor; }
QColor secColor() const { return m_secColor; }
QColor bgColor() const { return m_bgColor; }
signals:
void hourColorChanged(QColor hourColor);
void minuteColorChanged(QColor minuteColor);
void secColorChanged(QColor secColor);
void bgColorChanged(QColor b