🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
UiDragForce.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstGUI/UiObject.hpp"
25#include "AstGUI/UiFilePath.hpp"
26#include "AstGUI/UiDouble.hpp"
27#include "AstGUI/UiQuantity.hpp"
28#include <QVBoxLayout>
29#include <QHBoxLayout>
30#include <QGridLayout>
31#include <QLabel>
32#include <QCheckBox>
33#include <QComboBox>
34#include <QGroupBox>
35
36AST_NAMESPACE_BEGIN
37
38class DragForce;
39
40class AST_GUI_API UiDragForce: public UiObject
41{
42 Q_OBJECT
43public:
44 UiDragForce(Object* object, QWidget *parent = nullptr);
45 UiDragForce(QWidget *parent = nullptr);
46 ~UiDragForce() = default;
47 UiDragForce(const UiDragForce&) = delete;
48 UiDragForce& operator=(const UiDragForce&) = delete;
49
50 DragForce* getDragForce() const;
51 void setDragForce(DragForce* drag);
52 void refreshUi();
53 void apply();
54 void applyTo(DragForce* drag);
55protected:
56 void setupUi();
57 void refreshAtmDensityModel();
58 void refreshGeoMagFluxSource();
59 void refreshGeoMagFluxUpdateRate();
60 void refreshSunPosition();
61private slots:
62 void onFluxApFileChanged(bool checked);
63private:
64 // 布局
65 QVBoxLayout* mainLayout_{nullptr};
66
67 // 模型配置
68 QGroupBox* modelGroup_{nullptr};
69 QGridLayout* modelLayout_{nullptr};
70 QHBoxLayout* typeLayout_{nullptr};
71 QLabel* typeLabel_{nullptr};
72 QComboBox* typeCombo_{nullptr};
73 QHBoxLayout* cdLayout_{nullptr};
74 QLabel* cdLabel_{nullptr};
75 UiDouble* cdEdit_{nullptr};
76 QHBoxLayout* areaMassLayout_{nullptr};
77 QLabel* areaMassLabel_{nullptr};
78 UiQuantity* areaMassEdit_{nullptr};
79
80 // 大气密度模型
81 QGroupBox* atmDensityGroup_{nullptr};
82 QGridLayout* atmDensityLayout_{nullptr};
83 QHBoxLayout* mainAtmLayout_{nullptr};
84 QLabel* mainAtmLabel_{nullptr};
85 QComboBox* mainAtmCombo_{nullptr};
86 QHBoxLayout* lowAltAtmLayout_{nullptr};
87 QLabel* lowAltAtmLabel_{nullptr};
88 QComboBox* lowAltAtmCombo_{nullptr};
89 QHBoxLayout* blendingRangeLayout_{nullptr};
90 QLabel* blendingRangeLabel_{nullptr};
91 UiQuantity* blendingRangeEdit_{nullptr};
92
93 // 太阳通量/地磁指数
94 QGroupBox* solarGeoMagGroup_{nullptr};
95 QGridLayout* solarGeoMagLayout_{nullptr};
96 QHBoxLayout* fluxSourceLayout_{nullptr};
97 QLabel* fluxSourceLabel_{nullptr};
98 QComboBox* fluxSourceCombo_{nullptr};
99
100 // 手动输入参数
101 QHBoxLayout* f10p7DailyLayout_{nullptr};
102 QLabel* f10p7DailyLabel_{nullptr};
103 UiDouble* f10p7DailyEdit_{nullptr};
104 QHBoxLayout* f10p7AverageLayout_{nullptr};
105 QLabel* f10p7AverageLabel_{nullptr};
106 UiDouble* f10p7AverageEdit_{nullptr};
107 QHBoxLayout* kpLayout_{nullptr};
108 QLabel* kpLabel_{nullptr};
109 UiDouble* kpEdit_{nullptr};
110
111 // 文件输入参数
112 QHBoxLayout* fluxApFileLayout_{nullptr};
113 QLabel* fluxApFileLabel_{nullptr};
114 UiFilePath* fluxApFileEdit_{nullptr};
115 QHBoxLayout* geoMagFluxUpdateRateLayout_{nullptr};
116 QLabel* geoMagFluxUpdateRateLabel_{nullptr};
117 QComboBox* geoMagFluxUpdateRateCombo_{nullptr};
118 QHBoxLayout* geoMagFluxSourceLayout_{nullptr};
119 QLabel* geoMagFluxSourceLabel_{nullptr};
120 QComboBox* geoMagFluxSourceCombo_{nullptr};
121
122 // 计算选项
123 QGroupBox* calcOptionsGroup_{nullptr};
124 QVBoxLayout* calcOptionsLayout_{nullptr};
125 QHBoxLayout* useApproxAltLayout_{nullptr};
126 QCheckBox* useApproxAltCheck_{nullptr};
127 QHBoxLayout* sunPositionLayout_{nullptr};
128 QLabel* sunPositionLabel_{nullptr};
129 QComboBox* sunPositionCombo_{nullptr};
130
131
132};
133
134AST_NAMESPACE_END
大气阻力模型
定义 DragForce.hpp:69
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95
双精度浮点数输入框
定义 UiDouble.hpp:36
定义 UiDragForce.hpp:41
文件路径输入框
定义 UiFilePath.hpp:36
与对象关联的 QWidget
定义 UiObject.hpp:36
数量输入框
定义 UiQuantity.hpp:41