#ifndef EDCLOCK_H #define EDCLOCK_H #include #include #include #include #include #include #include "eobject.h" class eDClock : public eObject { Q_OBJECT public: struct Data { QByteArray timeZoneId; bool year; bool month; bool day; bool hour; bool min; bool sec; bool weekly; bool fullYear; bool hour12; bool AmPm; int dateStyle; int timeStyle; bool multiline; QString fontFamily; int fontSize; bool fontBold; bool fontItalics; bool fontUnderline; QColor textColor; int playDuration=10; QString strHtml; }; public: explicit eDClock(QRectF rectInit,InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr); explicit eDClock(const QJsonObject &json, InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr); private: void init(); void CreateAllWordPic(QString strPath); void CreateWordPic(QString strWord,QString strFileName,QString strPath); public: static void setElement(const QJsonObject &json, Data &attr); public: virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; virtual int type() const override { return eObject::DClock; } virtual QWidget* wAttr() override; virtual QWidget* wAttrElement() override; virtual QJsonObject save(const QString &pRoot) override;// { Q_UNUSED(pRoot); return elementJson(); } virtual QJsonObject elementJson() const override; signals: public slots: void onAttrChanged(const eDClock::Data &data); private: Data m_attr; QString m_pRootPath=""; }; #endif // EDCLOCK_H