#ifndef ETEMP_H #define ETEMP_H #include "eobject.h" class eTemp : public eObject { Q_OBJECT public: struct Data { bool bTitle; QString labelTitle; bool bTemperature; int temperatureType; QString labelTemperature; int compensation; bool bHumidity; QString labelHumidity; bool bNoise; QString labelNoise; bool bWindSpeed; QString labelWindSpeed; bool bWindDirection; QString labelWindDirectiton; bool bPM25; QString labelPm25; bool bPM10; QString labelPm10; QString fontFamily; int fontSize; bool fontBold; bool fontItalics; bool fontUnderline; QColor textColor; int iAlignType; int playRefresh; int playDuration=10; bool bSingleScroll; int iScrollSpeed=10; QColor cBackground; }; public: explicit eTemp(QRectF rectInit,InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr); explicit eTemp(const QJsonObject &json, InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr); private: void init(); void CreateAllWordPic(QString strPath); void CreateWordPic(QString strWord,QString strFileName,QString strPath,int iPicHeight); void CreatePreviewPic(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::Temp; } 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 eTemp::Data &data); void TimerOutPro(); void onBackgroundColorChanged(const QColor& color) { m_attr.cBackground = color; updateGeometry(); } void OnRectChanged(); private: Data m_attr; QTimer *m_pScrollTimer=nullptr; int m_iScrollOffset=0; QPixmap *m_pRenderPixmap=nullptr; }; #endif // ETEMP_H