#pragma once #include "nmObjLine.h" #include "nmPlot_global.h" class nmPlotGraphicBinder; class NM_PLOT_EXPORT nmObjLineMeasure : public nmObjLine { Q_OBJECT ZX_DECLARE_DYNAMIC public: nmObjLineMeasure(); nmObjLineMeasure(const QString& sName, \ ZxSubAxisX* pAxisX, \ ZxSubAxisY* pAxisY); ~nmObjLineMeasure(); public: // 封装 virtual void initTools() override; // 辅助信息 virtual void initSubObjs() override; public: // 属性填充内容 virtual void fillPtyPano(IxPtyPano* sheet) override; // 成果序列化 virtual void onSerialize(ZxSerializer* ser) override; virtual void onDeserialize(ZxSerializer* ser) override; // 模版处理(从道理上讲,模版处理与成果序列化机制完全一致) // 但此处放开是为了调用方更灵活的控制 virtual void onLoadTempl(ZxSerializer* ser) override; virtual void onSaveTempl(ZxSerializer* ser) override; virtual void paintBack(QPainter* painter, \ const ZxPaintParam& param) override; virtual bool drawSelStates(QPainter* painter, QLineF& oLine) override; // 创建后被调用 virtual void afterCreated() override; // 删除测量线数据绑定 virtual void removeData() override; // 注入 Binder 指针 void setGraphicBinder(nmPlotGraphicBinder* pBinder) { m_pGraphicBinder = pBinder; } private: // 长度 double m_dLength; nmPlotGraphicBinder* m_pGraphicBinder; };