#pragma once #include #include #include #include "lp_defect_node.h" class LP_QT_UTILS_EXPORT lpRuler : public QWidget { Q_OBJECT public: enum RulerType { Horizontal, Vertical }; Q_ENUMS(RulerType) lpRuler(lpRuler::RulerType rulerType, int breadth = 80, QWidget* parent = 0); QSize minimumSizeHint() const; void setRulerDescription(const QString& description); void setRulerOriginValue(float ori_val); public slots: void onSetOrigin(const qreal x, const qreal y); void onSetRulerZoom(const qreal rulerZoom); protected: void paintEvent(QPaintEvent* event); private: void drawScaleMeter(QPainter* painter, QRectF rulerRect, qreal scaleMeter, qreal startPositoin); void drawFromOriginTo(QPainter* painter, QRectF rulerRect, qreal startMark, qreal endMark, qreal startTickNo, qreal step, qreal startPosition); private: RulerType ruler_type_; qreal origin_{ 0.0 }; qreal ruler_zoom_{ 1.0 }; bool draw_text_{ false }; qreal start_pos_small_{ 0.0 }; qreal start_pos_large_{ 0.0 }; int breadth_; QString description_; float origin_val_{ 0.0 }; };