🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
UiSequenceWorkbench.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstGUI/UiObject.hpp"
25#include <QWidget>
26#include <QToolBar>
27#include <QAction>
28#include <QMenu>
29
30class QSplitter;
31class QPlainTextEdit;
32
33AST_NAMESPACE_BEGIN
34
35class Sequence;
36class Command;
37class UiCommandTree;
38class UiCommandEditor;
39
41class AST_GUI_API UiSequenceWorkbench : public UiObject
42{
43 Q_OBJECT
44public:
45 explicit UiSequenceWorkbench(QWidget* parent = nullptr);
46 explicit UiSequenceWorkbench(Object* sequence, QWidget* parent = nullptr);
47 ~UiSequenceWorkbench() override;
49 UiSequenceWorkbench& operator=(const UiSequenceWorkbench&) = delete;
50
52 void setSequence(Sequence* sequence);
53
55 Sequence* sequence() const;
56
57
58private slots:
59 void onCommandSelected(Command* cmd);
60 void onAddInitialState();
61 void onAddPropagate();
62 void onAddManeuver();
63 void onAddSequence();
64 void onAddTargeterSequence();
65 void onAddLandingSite();
66 void onDeleteSegment();
67 void onOpenFile();
68 void onSaveFile();
69 void onRun();
70 void onStop();
71
72private:
73 void setupUi();
74 void setupToolBar();
75 void setupConnections();
76 void appendOutput(const QString& text);
77
78 // 工具栏和动作
79 QToolBar* toolBar_ = nullptr;
80 QMenu* addMenu_ = nullptr;
81 QAction* openAction_ = nullptr;
82 QAction* saveAction_ = nullptr;
83 QAction* deleteAction_ = nullptr;
84 QAction* runAction_ = nullptr;
85 QAction* stopAction_ = nullptr;
86
87 // 子组件
88 QSplitter* mainSplitter_ = nullptr;
89 UiCommandTree* commandTree_ = nullptr;
90 UiCommandEditor* commandEditor_ = nullptr;
91 QPlainTextEdit* outputView_ = nullptr;
92
93};
94
95AST_NAMESPACE_END
命令(虚基类),用于定义任务序列中的命令,例如初始状态、轨道机动、轨道预报等
定义 Command.hpp:42
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95
任务序列段,内部包含多个任务命令或轨道段,并会按顺序执行
定义 Sequence.hpp:43
命令属性编辑器,根据 RTTI 类型自动切换编辑页面
定义 UiCommandEditor.hpp:40
任务段树控件,继承 UiObjectTree,支持拖拽排序、右键菜单、序列同步
定义 UiCommandTree.hpp:33
与对象关联的 QWidget
定义 UiObject.hpp:36
任务序列编辑主面板(QWidget),由调用方嵌入容器
定义 UiSequenceWorkbench.hpp:42