opencv_mv/QPlugins/ImageProcess/ImageSource/QGraphicsViews.h

65 lines
1.8 KiB
C
Raw Normal View History

2023-05-22 09:27:46 +00:00
#pragma once
#pragma execution_character_set("utf-8")
#include <QGraphicsView>
#include <QScrollBar>
#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<QPointF>& 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();
};