#ifndef _PIC_COUNTER_ITEM_H_ #define _PIC_COUNTER_ITEM_H_ #include "pictextitem.h" #include #include "ViewModels.h" class PicCounterItem : public PicTextItem { public: explicit PicCounterItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0, const SourceType type = SourceType::COUNTER); void setCounter(COUNTER_TYPE type, int digitalNum, int displayNum); COUNTER_TYPE counterType() const { return m_counterType; } int digitalNum() const {return m_digitalNum; } int charWidth(); void setCharWidth(int width); protected: /** * @brief itemImage 子类可以重新实现该方法用于返回已经渲染好了的但未应用方向、水平拉伸的图像 * @return * @remark * 对图元进行方向、水平拉伸的步骤由 @see applyImgeTranslation 实现,因此子类不需要 */ virtual QImage itemImage() override; virtual void setCustomAttrs(const QXmlStreamAttributes& attrs); virtual void saveCustomAttrs(QXmlStreamAttributes& attrs); virtual void letterSpaceChanged() override; private: COUNTER_TYPE m_counterType; int m_digitalNum; QImage m_digitalImg; QHash m_charWidthMap; int m_displayNum = 0; }; #endif // _PIC_COUNTER_ITEM_H_