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.

37 lines
863 B
C

4 years ago
#pragma once
#include <QGraphicsView>
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QMouseEvent>
#include "lp_qt_utils.h"
class LP_QT_UTILS_EXPORT lp_img_viewer : public QGraphicsView
{
Q_OBJECT
public:
lp_img_viewer(QGraphicsScene *scene, QWidget *parent = 0);
lp_img_viewer(QWidget *parent = 0);
virtual ~lp_img_viewer();
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 showEvent(QShowEvent *event) 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 };
};