output.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "qt/output/output.hpp"
  2. QtOutput::QtOutput(string filename):QWidget(){
  3. kernel=new QtKernel(filename);
  4. kernel_thread=new QThread();
  5. kernel->moveToThread(kernel_thread);
  6. main_layout=new QVBoxLayout;
  7. time_bar=new QScrollBar(Qt::Horizontal);
  8. output_view=new QtOutputView(kernel);
  9. info_widget=new QWidget;
  10. info_layout=new QGridLayout;
  11. time_label=new QLabel;
  12. time_bar->setMinimum(0);
  13. time_bar->setMaximum(Time::nT-1);
  14. info_layout->addWidget(time_label);
  15. info_widget->setLayout(info_layout);
  16. main_layout->addWidget(output_view,1);
  17. main_layout->addWidget(time_bar);
  18. main_layout->addWidget(info_widget);
  19. setLayout(main_layout);
  20. step=0;
  21. update();
  22. connect(time_bar,&QScrollBar::valueChanged,this,&QtOutput::time_change);
  23. connect(kernel_thread,&QThread::started,kernel,&QtKernel::run);
  24. kernel_thread->start();
  25. }
  26. QtOutput::~QtOutput(){
  27. }
  28. void
  29. QtOutput::update(){
  30. update_infos();
  31. output_view->draw(step);
  32. }
  33. void
  34. QtOutput::update_infos(){
  35. time_label->setText("Time : "+QString::number(step*Time::dT));
  36. }
  37. void
  38. QtOutput::time_change(int val){
  39. step=val;
  40. update();
  41. }