DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAAbstractGraphicsSceneAction.h
1#ifndef DAABSTRACTGRAPHICSSCENEACTION_H
2#define DAABSTRACTGRAPHICSSCENEACTION_H
3#include "DAGraphicsViewGlobal.h"
4
5namespace DA
6{
7class DAGraphicsScene;
8
21class DAGRAPHICSVIEW_API DAAbstractGraphicsSceneAction
22{
23 friend class DAGraphicsScene;
24
25public:
28 // 场景
29 DAGraphicsScene* scene() const;
30 // 结束action,此行数会删除action,end后不能有任何成员函数的操作,否则会出现异常
31 void destroy();
32 // 设置光标的图像
33 void setCursorPixmap(const QPixmap& p);
34 // 设置光标
35 void setupCursor();
36 // 恢复光标
37 void restoreCursor();
38
39public:
40 // svg转换为pixmap
41 static QPixmap svgToPixmap(const QString& svgPath, const QSize& size);
42 // 通过任意两个点,获取topleft点
43 static QPointF topLeftPoint(const QPointF& p1, const QPointF& p2);
44 // 通过任意两个点,获取bottomRight点
45 static QPointF bottomRightPoint(const QPointF& p1, const QPointF& p2);
46 // 通过任意两点,获取构成矩形的尺寸
47 static QSizeF pointRectSize(const QPointF& p1, const QPointF& p2);
48
49protected:
50 // 开始激活,这是使用setAction后调用的函数
51 virtual void beginActive();
52 // 鼠标点击事件,返回true,代表action劫持了此事件,不会在scene中继续传递事件,默认返回false
53 virtual bool mousePressEvent(QGraphicsSceneMouseEvent* mouseEvent);
54 // 鼠标移动事件,返回true,代表action劫持了此事件,不会在scene中继续传递事件,默认返回false
55 virtual bool mouseMoveEvent(QGraphicsSceneMouseEvent* mouseEvent);
56 // 鼠标释放,返回true,代表action劫持了此事件,不会在scene中继续传递事件,默认返回false
57 virtual bool mouseReleaseEvent(QGraphicsSceneMouseEvent* mouseEvent);
58 // 结束激活,这是使用删除action前调用的函数
59 virtual void endAction();
60
61protected:
62 DAGraphicsScene* mScene { nullptr };
63 QPixmap mCursorPixmap;
64};
65}//end ns DA
66
67#endif // DAABSTRACTGRAPHICSSCENEACTION_H
这是一个scene的动作,DAGraphicsScene支持持有一个动作,这个动作可以捕获scene的所有界面事件
Definition DAAbstractGraphicsSceneAction.h:22
这是带着undostack的GraphicsScene 此QGraphicsScene支持:
Definition DAGraphicsScene.h:30
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44