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