🛰️航天仿真算法库 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;
48
50 void setSequence(Sequence* sequence);
51
53 Sequence* sequence() const;
54
55
56private slots:
57 void onCommandSelected(Command* cmd);
58 void onAddInitialState();
59 void onAddPropagate();
60 void onAddManeuver();
61 void onAddSequence();
62 void onAddTargeterSequence();
63 void onAddLandingSite();
64 void onDeleteSegment();
65 void onOpenFile();
66 void onSaveFile();
67 void onRun();
68 void onStop();
69
70private:
71 void setupUi();
72 void setupToolBar();
73 void setupConnections();
74 void appendOutput(const QString& text);
75
76 // 工具栏和动作
77 QToolBar* toolBar_ = nullptr;
78 QMenu* addMenu_ = nullptr;
79 QAction* openAction_ = nullptr;
80 QAction* saveAction_ = nullptr;
81 QAction* deleteAction_ = nullptr;
82 QAction* runAction_ = nullptr;
83 QAction* stopAction_ = nullptr;
84
85 // 子组件
86 QSplitter* mainSplitter_ = nullptr;
87 UiCommandTree* commandTree_ = nullptr;
88 UiCommandEditor* commandEditor_ = nullptr;
89 QPlainTextEdit* outputView_ = nullptr;
90
91};
92
93AST_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