🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
UiGravityForce.hpp
1#pragma once
2
3#include "AstGlobal.h"
4#include "AstGUI/UiObject.hpp"
5#include "AstGUI/UiFilePath.hpp"
6#include "AstGUI/UiInteger.hpp"
7#include "AstGUI/UiDouble.hpp"
8#include "AstGUI/UiQuantity.hpp"
9#include <QVBoxLayout>
10#include <QHBoxLayout>
11#include <QGridLayout>
12#include <QLabel>
13#include <QCheckBox>
14#include <QComboBox>
15#include <QGroupBox>
16
17AST_NAMESPACE_BEGIN
18
19class GravityForce;
20
21class AST_GUI_API UiGravityForce: public UiObject
22{
23 Q_OBJECT
24public:
25 UiGravityForce(Object* object, QWidget *parent = nullptr);
26 UiGravityForce(QWidget *parent = nullptr);
27 ~UiGravityForce() = default;
28 UiGravityForce(const UiGravityForce&) = delete;
29 UiGravityForce& operator=(const UiGravityForce&) = delete;
30
31 GravityForce* getGravityForce() const;
32 void setGravityForce(GravityForce* gravity);
33 void refreshUi();
34 void apply();
35protected:
36 void setupUi();
37 void refreshModel();
38 void refreshSolidTideType();
39private slots:
40 void applyTo(GravityForce* gravity);
41private:
42 // 布局
43 QVBoxLayout* mainLayout_{nullptr};
44 QGridLayout* gridLayout_{nullptr};
45
46 // 中心天体重力场配置
47 QGroupBox* centralBodyGravityGroup_{nullptr};
48 QGridLayout* centralBodyGravityLayout_{nullptr};
49 QHBoxLayout* modelLayout_{nullptr};
50 QLabel* modelLabel_{nullptr};
51 QComboBox* modelCombo_{nullptr};
52 UiFilePath* modelFileEdit_{nullptr};
53 QHBoxLayout* degreeLayout_{nullptr};
54 QLabel* degreeLabel_{nullptr};
55 UiInteger* degreeEdit_{nullptr};
56 QHBoxLayout* orderLayout_{nullptr};
57 QLabel* orderLabel_{nullptr};
58 UiInteger* orderEdit_{nullptr};
59 QHBoxLayout* secularVariationsLayout_{nullptr};
60 QCheckBox* secularVariationsCheck_{nullptr};
61
62 // 固体潮汐配置
63 QGroupBox* solidTidesGroup_{nullptr};
64 QGridLayout* solidTidesLayout_{nullptr};
65 QHBoxLayout* solidTideTypeLayout_{nullptr};
66 QLabel* solidTideTypeLabel_{nullptr};
67 QComboBox* solidTideTypeCombo_{nullptr};
68 QHBoxLayout* timeDependentLayout_{nullptr};
69 QCheckBox* timeDependentCheck_{nullptr};
70 QHBoxLayout* minAmplitudeLayout_{nullptr};
71 QLabel* minAmplitudeLabel_{nullptr};
72 UiQuantity* minAmplitudeEdit_{nullptr};
73 QHBoxLayout* truncateLayout_{nullptr};
74 QCheckBox* truncateCheck_{nullptr};
75
76 // 海洋潮汐配置
77 QGroupBox* oceanTidesGroup_{nullptr};
78 QGridLayout* oceanTidesLayout_{nullptr};
79 QHBoxLayout* useOceanTidesLayout_{nullptr};
80 QCheckBox* useOceanTidesCheck_{nullptr};
81 QHBoxLayout* degreeOceanLayout_{nullptr};
82 QLabel* degreeOceanLabel_{nullptr};
83 UiInteger* degreeOceanEdit_{nullptr};
84 QHBoxLayout* orderOceanLayout_{nullptr};
85 QLabel* orderOceanLabel_{nullptr};
86 UiInteger* orderOceanEdit_{nullptr};
87 QHBoxLayout* minAmplitudeOceanLayout_{nullptr};
88 QLabel* minAmplitudeOceanLabel_{nullptr};
89 UiQuantity* minAmplitudeOceanEdit_{nullptr};
90
91
92};
93
94AST_NAMESPACE_END
定义 GravityForce.hpp:43
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95
文件路径输入框
定义 UiFilePath.hpp:36
定义 UiGravityForce.hpp:22
整数输入框
定义 UiInteger.hpp:36
与对象关联的 QWidget
定义 UiObject.hpp:36
数量输入框
定义 UiQuantity.hpp:41