#ifndef EPHOTO_H #define EPHOTO_H #include #include #include "eobject.h" #include "QProcess" class ePhoto : public eObject { Q_OBJECT public: enum EnterStyle { NoneStyle = 0, Expanding2Left, Expanding2Right, Expanding2Top, Expanding2Bottom, ExpandingFromCenter }; struct Data { QString name; QString computer_pic_file; QString yuanshi_name; QString path; int playDuration=10; int playTimes; int enterStyle; int enterDuration; }; public: explicit ePhoto(QRectF rectInit,const QString &file, InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr); explicit ePhoto(QRectF rectInit,QSizeF DrawBoardSize,const QString &file, InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr); explicit ePhoto(const QJsonObject &json, const QString &pRoot, InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr); QImage * GetCurImage(){return &m_photo;} void CropCurImage(QRect rt); public: static void setElement(const QJsonObject &json, Data &attr); Data getData(){return m_attr;} public: static QString filters() { return tr("Images (*.png *.jpg *.jpeg *.bmp)"); } void deleteContent(); public: virtual int type() const override { return eObject::Photo; } virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; virtual QWidget* wAttr() override; virtual QWidget* wAttrElement() override; virtual bool save(const QString &pRoot) override; virtual QStringList filesList() const override; virtual QJsonObject elementJson() const override; signals: public slots: int onResChanged(const QString &file); void onAttrChanged(const ePhoto::Data &data); void ConvertImage(int,QProcess::ExitStatus); protected: void setPlayArg(int pd, int pt, int es, int ed); private: QImage m_photo; Data m_attr; bool m_CropFlag=false; QProcess *process=nullptr; QString m_strNewFileName; QRectF m_rectInit; QSizeF m_DrawBoardSize; }; #endif // EPHOTO_H