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.
newValue/3part/lp_qt_utils/inc/DefectCardViewer.h

46 lines
1.2 KiB
C++

#pragma once
#include <QGraphicsView>
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QMouseEvent>
#include "lp_qt_utils.h"
class LP_QT_UTILS_EXPORT DefectCardViewer : public QGraphicsView
{
Q_OBJECT
public:
DefectCardViewer(QGraphicsScene *scene, QWidget *parent = 0);
DefectCardViewer(QWidget *parent = 0);
virtual ~DefectCardViewer();
QGraphicsPixmapItem* setImage(QImage& img);
void fitInWindow();
signals:
void sigScaled(qreal scale);
protected:
virtual void wheelEvent(QWheelEvent *evt) override;
virtual void closeEvent(QCloseEvent *evt) override;
virtual void mousePressEvent(QMouseEvent *evt) override;
virtual void mouseMoveEvent(QMouseEvent *evt) override;
virtual void mouseReleaseEvent(QMouseEvent *evt) override;
virtual void drawForeground(QPainter *painter, const QRectF &rt) override;
private:
void init();
void scaleImage(qreal scale);
private:
QGraphicsPixmapItem* img_item_ptr_{ nullptr };
QSize origin_img_size_;
QImage* img_ptr_{ nullptr };
qreal scale_{ 1.0 };
QGraphicsLineItem *scale_line_ptr_{ nullptr };
QPointF scale_line_scene_pos1_;
QPointF scale_line_scene_pos2_;
};