#ifndef PICCODEITEM_H #define PICCODEITEM_H #include "pictextitem.h" #include "BarcodeEditor.h" #include class PicCodeItem : public PicTextItem { public: PicCodeItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0, const SourceType type = SourceType::CODE); virtual ~PicCodeItem(); virtual QVariant source() override; virtual void setSource(QVariant var) override; void setBarcodeViewModel(const BarcodeViewModel& vm); BarcodeViewModel barcodeViewModel(); bool updateVariants(const QVector counters); protected: /** * @brief itemImage 子类可以重新实现该方法用于返回已经渲染好了的但未应用方向、水平拉伸的图像 * @return * @remark * 对图元进行方向、水平拉伸的步骤由 @see applyImgeTranslation 实现,因此子类不需要 */ virtual QImage itemImage() override; virtual void setCustomAttrs(const QXmlStreamAttributes& attrs); virtual void saveCustomAttrs(QXmlStreamAttributes& attrs); private: bool updateVariants(); BarcodeViewModel m_vm; QVector m_currCounterValues; QString m_currCodeTxt; QImage m_codeImage; QTimer m_dateVarTimer; }; #endif // PICCODEITEM_H