Files
2026-09-10 09:20:45 +08:00

46 lines
1.2 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();
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