dialogpic.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #include "dialogpic.h"
  2. #include "ui_dialogpic.h"
  3. #include "mainwindow.h"
  4. extern iv::vision::rawpic grawpic[CAMERA_NUM];
  5. extern qint64 gTimeRawPic[CAMERA_NUM] ;
  6. extern QMutex gMutexPic[CAMERA_NUM];
  7. DialogPic::DialogPic(QWidget *parent) :
  8. QDialog(parent),
  9. ui(new Ui::DialogPic)
  10. {
  11. ui->setupUi(this);
  12. int i;
  13. for(i=0;i<4;i++)
  14. {
  15. mpview[i] = new MyView(this);
  16. mpview[i]->setObjectName(QStringLiteral("graphicsView"));
  17. mpview[i]->setGeometry(QRect(30, 30, 600, 600));
  18. mpview[i]->setCacheMode(mpview[i]->CacheBackground);
  19. mscene[i] = new QGraphicsScene;
  20. mpPicView[i] = new IVPicView();
  21. mpPicView[i]->start();
  22. mnLastPicTime[i] = 0;
  23. mbDraw[i] = false;
  24. }
  25. QTimer * timer = new QTimer();
  26. connect(timer,SIGNAL(timeout()),this,SLOT(onTimerPic()));
  27. timer->start(10);
  28. setWindowTitle("View All Picture");
  29. }
  30. DialogPic::~DialogPic()
  31. {
  32. qDebug("delete dialog");
  33. delete ui;
  34. }
  35. void DialogPic::resizeEvent(QResizeEvent *event)
  36. {
  37. (void)event;
  38. QRect rect = this->geometry();
  39. double fwidth = rect.width()/2;
  40. double fheight = rect.height()/2;
  41. mpview[0]->setGeometry(0,0,fwidth,fheight);
  42. mpview[1]->setGeometry(fwidth,0,fwidth,fheight);
  43. mpview[2]->setGeometry(0,fheight,fwidth,fheight);
  44. mpview[3]->setGeometry(fwidth,fheight,fwidth,fheight);
  45. // rect.setX(rect.x());
  46. }
  47. void DialogPic::onTimerPic()
  48. {
  49. int i;
  50. if(mbRefresh == false)return;
  51. bool bUpdate = false;
  52. for(i=0;i<4;i++)
  53. {
  54. if(mnLastPicTime[i] != gTimeRawPic[i])
  55. {
  56. gMutexPic[i].lock();
  57. mpPicView[i]->SetPic(grawpic[i]);
  58. gMutexPic[i].unlock();
  59. bUpdate = true;
  60. mbDraw[i] = true;
  61. }
  62. }
  63. if(bUpdate)update();
  64. }
  65. void DialogPic::paintEvent(QPaintEvent *)
  66. {
  67. int i;
  68. for(i=0;i<4;i++)
  69. {
  70. if(mbDraw[i])
  71. {
  72. QImage image = mpPicView[i]->GetImage();
  73. mscene[i]->clear();
  74. mscene[i]->addPixmap(QPixmap::fromImage(image));
  75. mpview[i]->setScene(mscene[i]);
  76. mpview[i]->show();
  77. }
  78. mbDraw[i] = false;
  79. }
  80. }
  81. void DialogPic::setRefresh(bool brefresh)
  82. {
  83. mbRefresh = brefresh;
  84. }