Files
VX5_KRO_GearPump/scene/PicCounterItem.h
T

50 lines
1.3 KiB
C++

#ifndef _PIC_COUNTER_ITEM_H_
#define _PIC_COUNTER_ITEM_H_
#include "pictextitem.h"
#include <QHash>
#include "ViewModels.h"
class PicCounterItem : public PicTextItem
{
public:
explicit PicCounterItem(QGraphicsItem *parent = 0, QGraphicsScene *scene = 0, const SourceType type = SourceType::COUNTER);
virtual QVariant source() override;
virtual void setSource(QVariant var) override;
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<QString, int> m_charWidthMap;
int m_displayNum = 0;
};
#endif // _PIC_COUNTER_ITEM_H_