🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ObjectEditRegistry.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include <unordered_map>
25
26class QWidget;
27
28AST_NAMESPACE_BEGIN
29
35class Object;
36class Class;
37
38typedef QWidget* (*FNewEditWidget)(Object *object);
39
40class AST_GUI_API ObjectEditRegistry
41{
42 using EditWidgetMap = std::unordered_map<Class*, FNewEditWidget>;
43public:
45 ObjectEditRegistry(bool shouldRegistEditWidget);
46 ~ObjectEditRegistry() = default;
47
48 static ObjectEditRegistry& Instance();
49
54 void registerEditWidget(Class *cls, FNewEditWidget newEditWidget);
55
60 QWidget* newEditWidget(Object *object);
61protected:
62 EditWidgetMap editWidgetMap_;
63};
64
65
70AST_GUI_CAPI void aUiRegisterEditWidget(Class *cls, FNewEditWidget newEditWidget);
71
72
77AST_GUI_CAPI QWidget* aUiNewEditWidget(Object *object);
78
79
82AST_NAMESPACE_END
类元信息
定义 Class.hpp:37
定义 ObjectEditRegistry.hpp:41
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:81
QWidget * aUiNewEditWidget(Object *object)
创建编辑控件
定义 ObjectEditRegistry.cpp:85
void aUiRegisterEditWidget(Class *cls, FNewEditWidget newEditWidget)
注册编辑控件
定义 ObjectEditRegistry.cpp:80