🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
UiExpressionBrowser.hpp
浏览该文件的文档.
1
21
22#pragma once
23
24#include "AstGlobal.h"
25#include "AstScript/Expr.hpp"
26#include "AstUtil/Object.hpp"
27#include "AstUtil/Attribute.hpp"
28#include "AstUtil/SharedPtr.hpp"
29#include <QWidget>
30
31class QTreeWidget;
32class QTreeWidgetItem;
33class QPushButton;
34
35AST_NAMESPACE_BEGIN
36
37class UiObjectTree;
38class UiAttributeTree;
39
40class AST_GUI_API UiExpressionBrowser : public QWidget
41{
42 Q_OBJECT
43public:
44 explicit UiExpressionBrowser(QWidget* parent = nullptr);
45
47 Expr* selectedExpression() const { return selectedExpr_.get(); }
48
50 static Expr* GetExpression(QWidget* parent = nullptr);
51
52signals:
55
58
59private slots:
60 void onObjectSelected(Object* object);
61 void onPropertySelected(const Attribute& attr);
62 void onCalculationSelectionChanged();
63 void onPropertyAccepted();
64 void onCalculationAccepted();
65 void onItemDoubleClicked(QTreeWidgetItem* item, int column);
66
67private:
68 void setupUi();
69 void refreshCalculationTree();
70
71 UiObjectTree* objectTree_ = nullptr;
72 UiAttributeTree* propertyTree_ = nullptr;
73 QTreeWidget* calculationTree_ = nullptr;
74 QPushButton* propertySelectButton_ = nullptr;
75 QPushButton* calculationSelectButton_ = nullptr;
76 WeakPtr<Object> currentObject_ = nullptr;
77 SharedPtr<Expr> selectedExpr_;
78};
79
80AST_NAMESPACE_END
表达式基类
定义 Expr.hpp:40
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95
共享指针
定义 SharedPtr.hpp:33
属性树控件,显示一个 AST 对象的所有反射属性(遍历继承链)
定义 UiAttributeTree.hpp:33
定义 UiExpressionBrowser.hpp:41
void propertyExpressionSelected(Expr *expr)
用户选择了对象属性表达式
Expr * selectedExpression() const
获取选中的表达式,无选中时返回 nullptr
定义 UiExpressionBrowser.hpp:47
void calculationExpressionSelected(Expr *expr)
用户选择了对象计算量表达式
通用对象树控件,支持显示全部对象或以指定节点为根的子树
定义 UiObjectTree.hpp:31
弱引用指针
定义 WeakPtr.hpp:35