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
45 lines
1.2 KiB
C
|
4 years ago
|
#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 };
|
||
|
|
};
|