49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
#ifndef PICCODEITEM_H
|
|
#define PICCODEITEM_H
|
|
|
|
#include "pictextitem.h"
|
|
#include "BarcodeEditor.h"
|
|
#include <QTimer>
|
|
|
|
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<int> counters);
|
|
|
|
int getHeight();
|
|
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<int> m_currCounterValues;
|
|
QString m_currCodeTxt;
|
|
QImage m_codeImage;
|
|
QTimer m_dateVarTimer;
|
|
};
|
|
|
|
#endif // PICCODEITEM_H
|