🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
UiODEVarStepIntegrator.hpp
浏览该文件的文档.
1
8
9#pragma once
10
11#include "AstGlobal.h"
12#include "AstGUI/UiObject.hpp"
13#include <QVBoxLayout>
14#include <QHBoxLayout>
15#include <QGroupBox>
16#include <QLabel>
17#include <QComboBox>
18#include <QCheckBox>
19#include <QDoubleSpinBox>
20#include <QSpinBox>
21
22AST_NAMESPACE_BEGIN
23
24class ODEVarStepIntegrator;
25class UiDouble;
26
27class AST_GUI_API UiODEVarStepIntegrator: public UiObject
28{
29 Q_OBJECT
30public:
31 UiODEVarStepIntegrator(Object* object, QWidget *parent = nullptr);
32 UiODEVarStepIntegrator(QWidget *parent = nullptr);
33 ~UiODEVarStepIntegrator() = default;
35 UiODEVarStepIntegrator& operator=(const UiODEVarStepIntegrator&) = delete;
36
37 ODEVarStepIntegrator* getODEVarStepIntegrator() const;
38 void setODEVarStepIntegrator(ODEVarStepIntegrator* integrator);
39 void refreshUi();
40 void apply();
41 void applyTo(ODEVarStepIntegrator* integrator);
42
43signals:
44 void odeVarStepIntegratorChanged(ODEVarStepIntegrator* integrator);
45protected:
46 void setupUi();
47private:
48 // 布局
49 QVBoxLayout* mainLayout_{nullptr};
50
51 // 初始步长
52 QHBoxLayout* initialStepLayout_{nullptr};
53 QLabel* initialStepLabel_{nullptr};
54 QDoubleSpinBox* initialStepEdit_{nullptr};
55 QLabel* initialStepUnit_{nullptr};
56
57 // 步长控制
58 QGroupBox* stepSizeGroup_{nullptr};
59 QVBoxLayout* stepSizeLayout_{nullptr};
60
61 QHBoxLayout* maxStepLayout_{nullptr};
62 QCheckBox* maxStepCheck_{nullptr};
63 QLabel* maxStepLabel_{nullptr};
64 QDoubleSpinBox* maxStepEdit_{nullptr};
65 QLabel* maxStepUnit_{nullptr};
66
67 QHBoxLayout* minStepLayout_{nullptr};
68 QCheckBox* minStepCheck_{nullptr};
69 QLabel* minStepLabel_{nullptr};
70 QDoubleSpinBox* minStepEdit_{nullptr};
71 QLabel* minStepUnit_{nullptr};
72
73 // 误差控制
74 QHBoxLayout* errorControlLayout_{nullptr};
75 QLabel* errorControlLabel_{nullptr};
76 QComboBox* errorControlCombo_{nullptr};
77
78 QHBoxLayout* maxAbsErrorLayout_{nullptr};
79 QLabel* maxAbsErrorLabel_{nullptr};
80 UiDouble* maxAbsErrorEdit_{nullptr};
81
82 QHBoxLayout* maxRelErrorLayout_{nullptr};
83 QLabel* maxRelErrorLabel_{nullptr};
84 UiDouble* maxRelErrorEdit_{nullptr};
85
86 QHBoxLayout* maxIterationsLayout_{nullptr};
87 QLabel* maxIterationsLabel_{nullptr};
88 QSpinBox* maxIterationsEdit_{nullptr};
89
90 // 安全系数
91 QHBoxLayout* highSafetyLayout_{nullptr};
92 QLabel* highSafetyLabel_{nullptr};
93 QDoubleSpinBox* highSafetyEdit_{nullptr};
94
95 QHBoxLayout* lowSafetyLayout_{nullptr};
96 QLabel* lowSafetyLabel_{nullptr};
97 QDoubleSpinBox* lowSafetyEdit_{nullptr};
98
99
100};
101
102AST_NAMESPACE_END
可变步长积分器
定义 ODEVarStepIntegrator.hpp:33
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95
双精度浮点数输入框
定义 UiDouble.hpp:36
定义 UiODEVarStepIntegrator.hpp:28
与对象关联的 QWidget
定义 UiObject.hpp:36