#ifndef __lpImgViewer_h_ #define __lpImgViewer_h_ #include #include #include #include class lpImgViewer : public QGraphicsView { Q_OBJECT public: lpImgViewer(QGraphicsScene *scene, QWidget *parent = 0); lpImgViewer(QWidget* parent = 0); ~lpImgViewer(){ if (mpImg) delete mpImg; } QGraphicsPixmapItem* setImg(QImage& img); void setInfoLabel(QLabel* ipLabel){ mpInfoLabel = ipLabel; } virtual void wheelEvent(QWheelEvent *evt); virtual void mouseMoveEvent(QMouseEvent *evt); virtual void resizeEvent(QResizeEvent* evt); virtual void mouseReleaseEvent(QMouseEvent *evt); virtual void closeEvent(QCloseEvent *evt); virtual void clear(); signals: void imgScaled(QTransform tf, QPointF center); void imgMoved(QPointF pos); void pixelSelected(QPoint pos); public slots: void scaleImg(QTransform tf, QPointF center); void moveImg(QPointF pos); void selectPixel(QPoint pos); private: QGraphicsPixmapItem* mpImgItem; QSize mImgOriSize; QLabel* mpInfoLabel; QImage* mpImg; QGraphicsScene* lpScene{ nullptr }; void scaleImg2(qreal scale); }; #endif