🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
UiMotionTwoBody.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstGUI/UiMotionProfile.hpp"
25#include "AstGUI/UiTimeInterval.hpp"
26#include "AstGUI/UiTimePoint.hpp"
27#include "AstGUI/UiQuantity.hpp"
28#include "AstGUI/UiStateCartesian.hpp"
29#include "AstGUI/UiStateKeplerian.hpp"
30#include <QVBoxLayout>
31#include <QHBoxLayout>
32#include <QGridLayout>
33#include <QLabel>
34#include <QCheckBox>
35#include <QComboBox>
36
37
38
39AST_NAMESPACE_BEGIN
40
46class MotionTwoBody;
47
48class AST_GUI_API UiMotionTwoBody: public UiMotionProfile
49{
50 Q_OBJECT
51public:
52 UiMotionTwoBody(Object* object, QWidget *parent = nullptr);
53 UiMotionTwoBody(QWidget *parent = nullptr);
54 ~UiMotionTwoBody() = default;
55
56 MotionTwoBody* getMotionTwoBody() const;
57 void setMotionTwoBody(MotionTwoBody* motion);
58 void refreshUi();
59 void apply();
60protected:
61 void onStateTypeChanged();
62 void onStepSizeChanged();
63 void onIntervalChanged();
64 void onPropagationFrameChanged();
65protected:
66 void refreshStateType();
67private slots:
68 void applyTo(MotionTwoBody* motion);
69private:
70 // 布局
71 QVBoxLayout* mainLayout_{nullptr};
72 QGridLayout* gridLayout_{nullptr};
73 QVBoxLayout* leftLayout_{nullptr};
74 QVBoxLayout* rightLayout_{nullptr};
75
76 // 左侧控件
77 QHBoxLayout* timeIntervalLayout_{nullptr};
78 QLabel* timeIntervalLabel_{nullptr};
79 UiTimeInterval* timeIntervalEdit_{nullptr};
80 QHBoxLayout* stepSizeLayout_{nullptr};
81 QLabel* stepSizeLabel_{nullptr};
82 UiQuantity* stepSizeEdit_{nullptr};
83 QHBoxLayout* propagationFrameLayout_{nullptr};
84 QLabel* propagationFrameLabel_{nullptr};
85 QComboBox* propagationFrameCombo_{nullptr};
86 QHBoxLayout* stateTypeLayout_{nullptr};
87 QLabel* stateTypeLabel_{nullptr};
88 QComboBox* stateTypeCombo_{nullptr};
89
90 // 右侧控件
91 UiStateCartesian* stateCartesianEdit_{nullptr};
92 UiStateKeplerian* stateKeplerianEdit_{nullptr};
93
94 // 数据
95 MotionTwoBody* motionTwoBody_{nullptr};
96};
97
98
99
100
103AST_NAMESPACE_END
定义 MotionTwoBody.hpp:40
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:81
定义 UiMotionProfile.hpp:36
定义 UiMotionTwoBody.hpp:49
数量输入框
定义 UiQuantity.hpp:43
定义 UiStateCartesian.hpp:39
定义 UiStateKeplerian.hpp:42
时间区间编辑控件
定义 UiTimeInterval.hpp:38