DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAStandardNodeSvgGraphicsItem.h
1#ifndef DASTANDARDNODESVGGRAPHICSITEM_H
2#define DASTANDARDNODESVGGRAPHICSITEM_H
3#include "DAWorkFlowAPI.h"
4#include "DAAbstractNodeGraphicsItem.h"
5class QSvgRenderer;
6class QGraphicsSimpleTextItem;
7namespace DA
8{
16{
17 Q_OBJECT
18 DA_DECLARE_PRIVATE(DAStandardNodeSvgGraphicsItem)
19 Q_PROPERTY(QString elementId READ elementId WRITE setElementId)
20public:
21 enum
22 {
23 Type = DA::ItemType_GraphicsStandardNodeSvgItem
24 };
25 int type() const override
26 {
27 return (Type);
28 }
29 DAStandardNodeSvgGraphicsItem(DAAbstractNode* n, QGraphicsItem* p = nullptr);
30 DAStandardNodeSvgGraphicsItem(DAAbstractNode* n, const QString& svgfile, QGraphicsItem* p = nullptr);
31 DAStandardNodeSvgGraphicsItem(DAAbstractNode* n, QSvgRenderer* sharedrender, QGraphicsItem* p = nullptr);
33
34public:
35 void setBodySize(const QSizeF& s) override;
36 // 绘制body
37 void paintBody(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget, const QRectF& bodyRect) override;
38
39public:
40 // 文本可以移动
41 void setEnableMoveText(bool on = true);
42 bool isEnableMoveText() const;
43 // 获取svg渲染器
44 QSvgRenderer* renderer() const;
45 void setSharedRenderer(QSvgRenderer* renderer);
46 // 设置ElementId
47 void setElementId(const QString& id);
48 QString elementId() const;
49 //
50 void setCachingEnabled(bool caching);
51 bool isCachingEnabled() const;
52 // 获取字体的尺寸
53 QSizeF getTextSize() const;
54 void setText(const QString& t);
55 // 设置svg
56 bool setSvg(const QString& svgfile);
57 // 把bodysize设置为svg的default size
58 void resetBodySize();
59 // 设置图片变换时的比例
60 void setAspectRatioMode(Qt::AspectRatioMode m);
61 Qt::AspectRatioMode getAspectRatioMode() const;
62 // 获取文本图元
63 QGraphicsSimpleTextItem* getTextItem() const;
64 // 更新text item的位置,使得文本的位置一直处于中间
65 void updateTextItemPos();
66
67protected:
68 virtual void prepareNodeNameChanged(const QString& name) override;
69public slots:
70 void repaintItem();
71
72protected:
73 // 添加事件处理
74 virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant& value);
75};
76} // end of namespace DA
77
78#endif // DASTANDARDNODESVGGRAPHICSITEM_H
这是节点的基类,workflow所有节点都继承此类 作为一个节点的QGraphicsItem,此item应该由DAAbstractNode创建
Definition DAAbstractNodeGraphicsItem.h:47
节点对应的基类
Definition DAAbstractNode.h:50
标准的可resize的svg GraphicsItem,可以作为节点的图片显示
Definition DAStandardNodeSvgGraphicsItem.h:16
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44