You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.2 KiB
C++

#pragma once
#include <QWidget>
#include <QPainter>
#include <QDebug>
#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 };
};