input_physics.hpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. #endif