mainwindow.cpp 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QTimer>
  4. #include "google/protobuf/io/zero_copy_stream_impl.h"
  5. #include "google/protobuf/text_format.h"
  6. MainWindow::MainWindow(QWidget *parent)
  7. : QMainWindow(parent)
  8. , ui(new Ui::MainWindow)
  9. {
  10. ui->setupUi(this);
  11. mpquery = new groupqueryclient();
  12. mpquery->start();
  13. QTimer * timer = new QTimer(this);
  14. connect(timer,SIGNAL(timeout()),this,SLOT(onTimer()));
  15. timer->start(100);
  16. setWindowTitle("View Group Message");
  17. }
  18. MainWindow::~MainWindow()
  19. {
  20. delete ui;
  21. }
  22. void MainWindow::onTimer()
  23. {
  24. minfo = mpquery->GetVehinfo();
  25. int noldindex = ui->comboBox->currentIndex();
  26. if(mvectoritem.size() != minfo.size())
  27. {
  28. ui->comboBox->clear();
  29. unsigned int i;
  30. for(i=0;i<minfo.size();i++)
  31. {
  32. mvectoritem.push_back(minfo[i].strvehid);
  33. ui->comboBox->addItem(minfo[i].strvehid.data());
  34. }
  35. }
  36. if(noldindex>=0)ui->comboBox->setCurrentIndex(noldindex);
  37. if(mvectoritem.size() == 0)return;
  38. using google::protobuf::TextFormat;
  39. using google::protobuf::io::FileOutputStream;
  40. using google::protobuf::io::ZeroCopyOutputStream;
  41. std::string strout;
  42. ZeroCopyOutputStream *output = new google::protobuf::io::StringOutputStream(&strout);//new FileOutputStream(file_descriptor);
  43. int index = ui->comboBox->currentIndex();
  44. if(minfo[index].mvehinfo.has_mgpsimu())
  45. {
  46. bool success = TextFormat::Print(*(minfo[index].mvehinfo.mutable_mgpsimu()), output);
  47. if(success)
  48. {
  49. ui->plainTextEdit->setPlainText(strout.data());
  50. }
  51. }
  52. delete output;
  53. strout.clear();
  54. output = new google::protobuf::io::StringOutputStream(&strout);
  55. if(minfo[index].mvehinfo.has_mbrainstate())
  56. {
  57. bool success = TextFormat::Print(*(minfo[index].mvehinfo.mutable_mbrainstate()), output);
  58. if(success)
  59. {
  60. ui->plainTextEdit_brainstate->setPlainText(strout.data());
  61. }
  62. }
  63. delete output;
  64. strout.clear();
  65. output = new google::protobuf::io::StringOutputStream(&strout);
  66. if(minfo[index].mvehinfo.has_mdecition())
  67. {
  68. bool success = TextFormat::Print(*(minfo[index].mvehinfo.mutable_mdecition()), output);
  69. if(success)
  70. {
  71. ui->plainTextEdit_decision->setPlainText(strout.data());
  72. }
  73. }
  74. }