#pragma once #pragma execution_character_set("utf-8") #include #include #include "BaseItem.h" class QLabel; class QMouseEvent; class QGraphicsScenes; class ImageItem; class QGraphicsViews : public QGraphicsView { Q_OBJECT public: QGraphicsViews(QWidget* parent = nullptr); void SetToFit(qreal val); void ClearObj(); QGraphicsScenes* scene; DrawItem* drawItem; public slots: void DispImage(QImage& Image); //显示图片 void DispPoint(QVector& list, QColor color = QColor(0, 255, 0));//显示点集合 void AddItems(BaseItem* item); //添加ROI void SetType(bool InfoFlg, bool GrayValueFlg);//设定显示信息 protected: virtual void mousePressEvent(QMouseEvent* event) override; virtual void mouseReleaseEvent(QMouseEvent* event) override; virtual void mouseDoubleClickEvent(QMouseEvent* event) override; virtual void mouseMoveEvent(QMouseEvent* event) override; virtual void wheelEvent(QWheelEvent* event) override; virtual void resizeEvent(QResizeEvent* event) override; virtual void drawBackground(QPainter* painter, const QRectF& rect) override; virtual void paintEvent(QPaintEvent* event) override; virtual void contextMenuEvent(QContextMenuEvent* event) override; //右键菜单 private: void OnZoomInImage(); void OnZoomOutImage(); void ZoomFrame(double value); void OnFitImage(); void GetFit(); QScrollBar* pHbar; QScrollBar* pVbar; double ZoomValue = 1; double ZoomFit = 1; double PixX = 0; double PixY = 0; QPixmap image; ImageItem* item; QWidget* fWidget; QLabel* GrayValue; //显示灰度值 private: int MRSize = 8; //拖拽区域大小 QColor color1 = QColor(30, 30, 30); //颜色1 QColor color2 = QColor(50, 50, 50, 255); //颜色2 QPixmap bgPix = QPixmap(36, 36); //背景图片 void drawBg(); };