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