DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAWorkFlowEditWidget.h
1#ifndef DAWORKFLOWEDITWIDGET_H
2#define DAWORKFLOWEDITWIDGET_H
3#include <QWidget>
4#include <QImage>
5#include "DAGuiAPI.h"
6#include "DAGraphicsStandardTextItem.h"
7#include "DAWorkFlowGraphicsView.h"
8#include "DAWorkFlowGraphicsScene.h"
9#include "DAWorkFlow.h"
10#include "DAAbstractGraphicsSceneAction.h"
11namespace Ui
12{
13class DAWorkFlowEditWidget;
14}
15class QUndoStack;
16
17namespace DA
18{
19class DAGraphicsItem;
20class DADataWorkFlow;
21class DAWorkFlowGraphicsView;
22class DAAbstractNodeGraphicsItem;
28class DAGUI_API DAWorkFlowEditWidget : public QWidget
29{
30 Q_OBJECT
31
32public:
33 explicit DAWorkFlowEditWidget(QWidget* parent = nullptr);
35 // 获取工厂
36 DAWorkFlow* getWorkflow() const;
37 // 设置工作流
38 void setWorkFlow(DAWorkFlow* w);
39 // 获取工作流操作视图
40 DAWorkFlowGraphicsView* getWorkFlowGraphicsView() const;
41 // 获取GraphicsScene
42 DAWorkFlowGraphicsScene* getWorkFlowGraphicsScene() const;
43 // 激活UndoStack
44 void setUndoStackActive();
45 // 设置显示grid
46 void setEnableShowGrid(bool on);
47 // 获取QUndoStack
48 QUndoStack* getUndoStack();
49 // 运行工作流
50 void runWorkFlow();
51 // 设置鼠标动作
52 void setPreDefineSceneAction(DAWorkFlowGraphicsScene::SceneActionFlag mf);
53 // 设置文本字体 -- 此参数设置决定创建文本框时的字体和颜色
54 QFont getDefaultTextFont() const;
55 void setDefaultTextFont(const QFont& f);
56 // 设置文本颜色 -- 此参数设置决定创建文本框时的字体和颜色
57 QColor getDefaultTextColor() const;
58 void setDefaultTextColor(const QColor& c);
59 // 添加一个图片item
60 DAGraphicsPixmapItem* addPixmapItem_(const QImage& img);
61 // 获取当前view视图下的scene中心
62 QPointF getViewCenterMapToScene() const;
63 // 把item移动到屏幕中心
64 void moveItemToViewSceneCenter(QGraphicsItem* item);
65 // 计算item所包含的范围,这个范围存入xml中,以便让scene第一时间知道总体范围
66 static QRectF calcAllItemsSceneRange(const QList< QGraphicsItem* >& its);
67 //
68 static QList< QGraphicsItem* > cast(const QList< DAGraphicsItem* >& its);
69public slots:
70 // 添加一个背景图
71 void addBackgroundPixmap(const QString& pixmapPath);
72 // 锁定背景图
73 void setBackgroundPixmapLock(bool on);
74 // 文字加粗
75 void setSelectTextToBold(bool on);
76 // 文字斜体
77 void setSelectTextToItalic(bool on);
78 // 设置文字颜色
79 void setSelectTextColor(const QColor& color);
80 // 设置字体样式
81 void setSelectTextFamily(const QString& family);
82 // 设置字体大小
83 void setSelectTextPointSize(const int size);
84 // 设置当前选择的文本item的字体
85 void setSelectTextItemFont(const QFont& f);
86 // 设置当前选中的图元的背景
87 void setSelectShapeBackgroundBrush(const QBrush& b);
88 // 设置当前选中的图元的背景
89 void setSelectShapeBorderPen(const QPen& v);
90 // 全选
91 void selectAll();
92 // 取消选中
93 void clearSelection();
94 // 复制当前选中的items
95 void copySelectItems();
96 // 复制当前选中的items
97 void cutSelectItems();
98 // 粘贴到视图中心
99 void pasteToViewCenter();
100 // 移除选中的条目
101 void removeSelectItems();
102 // 执行取消动作
103 void cancel();
104signals:
105
111
117
131 void nodeExecuteFinished(DAAbstractNode::SharedPointer n, bool state);
132
137 void finished(bool success);
138
139private:
140 // 获取选中的文本
141 QList< DAGraphicsStandardTextItem* > getSelectStandardTextItems();
142 QList< DAGraphicsTextItem* > getSelectTextItems();
143 // 获取选中的基本图元
144 QList< DAGraphicsItem* > getSelectDAItems();
145 void createScene();
146 // 设置item的选中状态
147 void setSelectionState(const QList< QGraphicsItem* >& items, bool isSelect);
148
149private:
150 Ui::DAWorkFlowEditWidget* ui;
151 DAWorkFlowGraphicsScene* mScene { nullptr };
152};
153} // end of DA
154#endif // DAWORKFLOWEDITWIDGET_H
这是一个scene的动作,DAGraphicsScene支持持有一个动作,这个动作可以捕获scene的所有界面事件
Definition DAAbstractGraphicsSceneAction.h:22
这是节点的基类,workflow所有节点都继承此类 作为一个节点的QGraphicsItem,此item应该由DAAbstractNode创建
Definition DAAbstractNodeGraphicsItem.h:47
支持缩放编辑的图片item
Definition DAGraphicsPixmapItem.h:13
工作流绘图窗口
Definition DAWorkFlowEditWidget.h:29
void selectNodeItemChanged(DA::DAAbstractNodeGraphicsItem *i)
选中了某个节点的设置窗口
void sceneActionDeactived(DA::DAAbstractGraphicsSceneAction *scAction)
场景动作结束
void sceneActionActived(DA::DAAbstractGraphicsSceneAction *scAction)
场景动作激活
void finished(bool success)
工作流执行完毕信号
void nodeExecuteFinished(DAAbstractNode::SharedPointer n, bool state)
执行到某个节点发射的信号
void startExecute()
开始执行,exec函数调用后会触发此信号
The DAWorkFlowGraphicsScene class
Definition DAWorkFlowGraphicsScene.h:18
SceneActionFlag
鼠标动作标记
Definition DAWorkFlowGraphicsScene.h:25
用于节点显示的GraphicsView
Definition DAWorkFlowGraphicsView.h:24
基本的工作流,这个也是总工厂,汇总了所有插件的工厂
Definition DAWorkFlow.h:21
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44