input_geometry.hpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef QT_INPUT_GEOMETRY_HPP
  2. #define QT_INPUT_GEOMETRY_HPP
  3. #include <iostream>
  4. #include <fstream>
  5. #include <QWidget>
  6. #include <QVBoxLayout>
  7. #include <QLabel>
  8. #include <QLineEdit>
  9. #include <QDoubleValidator>
  10. #include <QIntValidator>
  11. #include <QPushButton>
  12. #include "geometry.hpp"
  13. static const double def_lX=10;
  14. static const size_t def_nX=100;
  15. static const size_t def_depth=1;
  16. static const size_t def_nZ=100;
  17. using namespace std;
  18. class QtInputGeometry:public QWidget{
  19. Q_OBJECT
  20. private:
  21. Geometry* geometry;
  22. QVBoxLayout* main_layout;
  23. QLabel* lX_label;
  24. QLabel* nX_label;
  25. QLabel* nZ_label;
  26. QLabel* depth_label;
  27. QLineEdit* lX_input;
  28. QLineEdit* nX_input;
  29. QLineEdit* nZ_input;
  30. QLineEdit* depth_input;
  31. QPushButton* refresh_button;
  32. QDoubleValidator* positive_double_validator;
  33. QIntValidator* positive_int_validator;
  34. public:
  35. QtInputGeometry(Geometry* geometry);
  36. ~QtInputGeometry();
  37. QWidget* validate();
  38. void save(fstream& file);
  39. void load(fstream& file);
  40. public slots:
  41. void emitGeometryChanged();
  42. signals:
  43. void geometryChanged();
  44. };
  45. inline
  46. QtInputGeometry::~QtInputGeometry(){
  47. }
  48. inline void
  49. QtInputGeometry::emitGeometryChanged(){
  50. emit geometryChanged();
  51. }
  52. #endif