input_time.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "input_time.hpp"
  2. QtInputTime::QtInputTime():QWidget(){
  3. main_layout=new QVBoxLayout;
  4. T_label=new QLabel("Total duration of the simulation (T)");
  5. nT_label=new QLabel("Number of time steps (nT)");
  6. T_input=new QLineEdit(QString::number(Time::T));
  7. nT_input=new QLineEdit(QString::number(Time::nT));
  8. positive_double_validator=new QDoubleValidator;
  9. positive_double_validator->setBottom(0);
  10. positive_int_validator=new QIntValidator;
  11. positive_int_validator->setBottom(1);
  12. T_input->setValidator(positive_double_validator);
  13. nT_input->setValidator(positive_int_validator);
  14. int vspace=20;
  15. main_layout->addWidget(T_label);
  16. main_layout->addWidget(T_input);
  17. main_layout->addSpacing(vspace);
  18. main_layout->addWidget(nT_label);
  19. main_layout->addWidget(nT_input);
  20. main_layout->addSpacing(vspace);
  21. main_layout->addStretch();
  22. setLayout(main_layout);
  23. }
  24. QWidget*
  25. QtInputTime::validate(){
  26. if(not T_input->hasAcceptableInput()) return T_input;
  27. if(not nT_input->hasAcceptableInput()) return nT_input;
  28. return nullptr;
  29. }
  30. void
  31. QtInputTime::save(fstream& file){
  32. double d=T_input->text().toDouble();
  33. file.write((char*)&d,sizeof(double));
  34. size_t s=nT_input->text().toULong();
  35. file.write((char*)&s,sizeof(size_t));
  36. }
  37. void
  38. QtInputTime::load(fstream& file){
  39. double d;
  40. size_t s;
  41. file.read((char*)&d,sizeof(double));
  42. T_input->setText(QString::number(d));
  43. file.read((char*)&s,sizeof(size_t));
  44. nT_input->setText(QString::number(s));
  45. }