DiagramDesigner/diagramCavas/include/designerView.h

42 lines
1010 B
C
Raw Normal View History

2024-12-03 20:07:25 +08:00
#ifndef DESIGNER_VIEW_H
#define DESIGNER_VIEW_H
#include <QGraphicsView>
class DesignerView : public QGraphicsView
{
Q_OBJECT
public:
explicit DesignerView(QWidget *parent = 0);
virtual ~DesignerView();
//视图操作-外部调用
void zoomIn();
void zoomOut();
void zoomFit();
protected:
2025-02-06 16:36:50 +08:00
//virtual void contextMenuEvent(QContextMenuEvent*) override;
2024-12-03 20:07:25 +08:00
virtual void mousePressEvent(QMouseEvent*) override;
virtual void mouseMoveEvent(QMouseEvent*) override;
virtual void mouseReleaseEvent(QMouseEvent*) override;
virtual void wheelEvent(QWheelEvent*) override;
private:
void initialize();
//视图操作相关
void zoom(const QPointF&, double);
bool zoomLimit(double&);
double getScaleFactor();
void translate(const QPointF&);
2024-12-07 17:24:36 +08:00
signals:
void onScaleChanged(double d);
2024-12-03 20:07:25 +08:00
private:
bool m_bMousePress;
double m_dScale;
QPointF m_ptLatstMouse_view; //鼠标最后按下在view中的位置
2024-12-07 17:24:36 +08:00
int m_nLevel;
2024-12-03 20:07:25 +08:00
};
#endif