12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #ifndef IMAGEWIDGET_H
- #define IMAGEWIDGET_H
- #include <QWidget>
- #include <QPixmap>
- #include <QMouseEvent>
- #include <QVector>
- #include <QPoint>
- #include <QPen>
- namespace Ui {
- class ImageWidget;
- }
- class ImageWidget : public QWidget
- {
- Q_OBJECT
- public:
- explicit ImageWidget(QWidget *parent = nullptr);
- ~ImageWidget();
- void setPixmap(const QPixmap& pixmap);
- void setPixmapAndPoint(const QPixmap& pixmap, double previousScaleFactor, qreal scaleFactor, QPoint mousePos);
- void clearPixmap();
- void setIsDrawing(bool value);
- void clearDrawing();
- signals:
- void sendDoubleClicksignal();
- protected:
- void paintEvent(QPaintEvent *event) override;
- void mousePressEvent(QMouseEvent *event) override;
- void mouseMoveEvent(QMouseEvent *event) override;
- void mouseReleaseEvent(QMouseEvent *event) override;
- void mouseDoubleClickEvent(QMouseEvent *event) override;
- private:
- void DrawCrossWithScale(QPainter* painter, double dImgWidth, double dImgHeight, const QSize& sourceImageSize, const QPointF& sourceImagePosition);
- void drawCross(QPainter* painter, QRect rect);
- private:
- Ui::ImageWidget *ui;
- QPixmap pixmap;
- QPoint lastMousePos = {}; // 上一次鼠标的位置
- QPointF imageOffset = {}; // 图片的偏移量
- bool isDragging = false; // 是否正在拖动
- //QPoint imageOffset;
- QPen pen;
- QVector<QLine> lines;
- QPoint lastPoint;
- bool isDrawing;
- public:
- /**是否是SingleCameraOperationWnd
- */
- int m_nSingleCameraOperationWnd = false;
- };
- #endif // IMAGEWIDGET_H
|