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