input_physics.hpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef QT_INPUT_PHYSICS_HPP
  2. #define QT_INPUT_PHYSICS_HPP
  3. #include <iostream>
  4. #include <QLabel>
  5. #include <QWidget>
  6. #include <QGroupBox>
  7. #include <QComboBox>
  8. #include <QHBoxLayout>
  9. #include <QVBoxLayout>
  10. #include <QLineEdit>
  11. #include <QDoubleValidator>
  12. #include <fstream>
  13. #include "physics.hpp"
  14. using namespace std;
  15. static const size_t max_model_parameters=6;
  16. class QtInputPhysics:public QWidget{
  17. Q_OBJECT
  18. private:
  19. QGroupBox* phy_common_box;
  20. QGroupBox* phy_model_box;
  21. QComboBox* phy_model_selection_box;
  22. QLabel* g_label;
  23. QLabel* rho_label;
  24. QLabel* phi_label;
  25. QLabel* k0_label;
  26. QLabel* nivrivsat_label;
  27. QLabel* model_label[max_model_parameters];
  28. QLineEdit* g_input;
  29. QLineEdit* rho_input;
  30. QLineEdit* phi_input;
  31. QLineEdit* k0_input;
  32. QLineEdit* nivrivsat_input;
  33. QLineEdit* model_input[max_model_parameters];
  34. QHBoxLayout* base_layout;
  35. QVBoxLayout* phy_common_layout;
  36. QVBoxLayout* phy_model_layout;
  37. QSpacerItem* phy_model_layout_spacer;
  38. QDoubleValidator* double_validator;
  39. QDoubleValidator* positive_double_validator;
  40. size_t nb_model_parameters;
  41. public:
  42. QtInputPhysics();
  43. ~QtInputPhysics();
  44. QWidget* validate();
  45. void save(fstream& file);
  46. void load(fstream& file);
  47. void loadData();
  48. private slots:
  49. void modelChoosed(int index);
  50. };
  51. inline QtInputPhysics::~QtInputPhysics(){
  52. delete double_validator;
  53. delete positive_double_validator;
  54. }
  55. #endif