🛰️航天仿真算法库 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;
25
26class AST_GUI_API UiODEVarStepIntegrator: public UiObject
27{
28 Q_OBJECT
29public:
30 UiODEVarStepIntegrator(Object* object, QWidget *parent = nullptr);
31 UiODEVarStepIntegrator(QWidget *parent = nullptr);
32 ~UiODEVarStepIntegrator() = default;
33
34 ODEVarStepIntegrator* getODEVarStepIntegrator() const;
35 void setODEVarStepIntegrator(ODEVarStepIntegrator* integrator);
36 void refreshUi();
37 void apply();
38 void applyTo(ODEVarStepIntegrator* integrator);
39
40signals:
41 void odeVarStepIntegratorChanged(ODEVarStepIntegrator* integrator);
42protected:
43 void setupUi();
44private slots:
45 void onFixedStepChanged(bool checked);
46private:
47 // 布局
48 QVBoxLayout* mainLayout_{nullptr};
49 QHBoxLayout* integratorLayout_{nullptr};
50 QLabel* integratorLabel_{nullptr};
51 QComboBox* integratorCombo_{nullptr};
52
53 // 初始步长
54 QHBoxLayout* initialStepLayout_{nullptr};
55 QLabel* initialStepLabel_{nullptr};
56 QDoubleSpinBox* initialStepEdit_{nullptr};
57 QLabel* initialStepUnit_{nullptr};
58
59 // 步长控制
60 QGroupBox* stepSizeGroup_{nullptr};
61 QVBoxLayout* stepSizeLayout_{nullptr};
62 QHBoxLayout* fixedStepLayout_{nullptr};
63 QCheckBox* fixedStepCheck_{nullptr};
64 QLabel* fixedStepLabel_{nullptr};
65
66 QHBoxLayout* maxStepLayout_{nullptr};
67 QCheckBox* maxStepCheck_{nullptr};
68 QLabel* maxStepLabel_{nullptr};
69 QDoubleSpinBox* maxStepEdit_{nullptr};
70 QLabel* maxStepUnit_{nullptr};
71
72 QHBoxLayout* minStepLayout_{nullptr};
73 QCheckBox* minStepCheck_{nullptr};
74 QLabel* minStepLabel_{nullptr};
75 QDoubleSpinBox* minStepEdit_{nullptr};
76 QLabel* minStepUnit_{nullptr};
77
78 // 误差控制
79 QHBoxLayout* errorControlLayout_{nullptr};
80 QLabel* errorControlLabel_{nullptr};
81 QComboBox* errorControlCombo_{nullptr};
82
83 QHBoxLayout* maxAbsErrorLayout_{nullptr};
84 QLabel* maxAbsErrorLabel_{nullptr};
85 QDoubleSpinBox* maxAbsErrorEdit_{nullptr};
86
87 QHBoxLayout* maxRelErrorLayout_{nullptr};
88 QLabel* maxRelErrorLabel_{nullptr};
89 QDoubleSpinBox* maxRelErrorEdit_{nullptr};
90
91 QHBoxLayout* maxIterationsLayout_{nullptr};
92 QLabel* maxIterationsLabel_{nullptr};
93 QSpinBox* maxIterationsEdit_{nullptr};
94
95 // 安全系数
96 QHBoxLayout* highSafetyLayout_{nullptr};
97 QLabel* highSafetyLabel_{nullptr};
98 QDoubleSpinBox* highSafetyEdit_{nullptr};
99
100 QHBoxLayout* lowSafetyLayout_{nullptr};
101 QLabel* lowSafetyLabel_{nullptr};
102 QDoubleSpinBox* lowSafetyEdit_{nullptr};
103
104
105};
106
107AST_NAMESPACE_END
可变步长积分器
定义 ODEVarStepIntegrator.hpp:33
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:86
定义 UiODEVarStepIntegrator.hpp:27
与对象关联的 QWidget
定义 UiObject.hpp:36