GridFrame/diagramCavas/include/baseView.h

42 lines
935 B
C++

#ifndef BASEVIEW_H
#define BASEVIEW_H
#include <QGraphicsView>
class BaseView : public QGraphicsView
{
Q_OBJECT
public:
explicit BaseView(QWidget *parent = 0);
virtual ~BaseView();
virtual void initialize();
//视图操作-外部调用
void zoomIn();
void zoomOut();
void zoomFit();
protected:
virtual void mousePressEvent(QMouseEvent*) override;
virtual void mouseMoveEvent(QMouseEvent*) override;
virtual void mouseReleaseEvent(QMouseEvent*) override;
virtual void wheelEvent(QWheelEvent*) override;
protected:
//视图操作相关
void zoom(const QPointF&, double);
bool zoomLimit(double&);
double getScaleFactor();
void translate(const QPointF&);
signals:
void onScaleChanged(double d);
protected:
bool m_bMousePress;
double m_dScale;
QPointF m_ptLatstMouse_view; //鼠标最后按下在view中的位置
int m_nLevel;
};
#endif