physics.hpp 1.5 KB

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