65 lines
1.8 KiB
C++
65 lines
1.8 KiB
C++
#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 OnFitImage();
|
|
void ZoomFrame(double value);
|
|
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();
|
|
};
|