123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #include "dialogpic.h"
- #include "ui_dialogpic.h"
- #include "mainwindow.h"
- extern iv::vision::rawpic grawpic[CAMERA_NUM];
- extern qint64 gTimeRawPic[CAMERA_NUM] ;
- extern QMutex gMutexPic[CAMERA_NUM];
- DialogPic::DialogPic(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::DialogPic)
- {
- ui->setupUi(this);
- int i;
- for(i=0;i<4;i++)
- {
- mpview[i] = new MyView(this);
- mpview[i]->setObjectName(QStringLiteral("graphicsView"));
- mpview[i]->setGeometry(QRect(30, 30, 600, 600));
- mpview[i]->setCacheMode(mpview[i]->CacheBackground);
- mscene[i] = new QGraphicsScene;
- mpPicView[i] = new IVPicView();
- mpPicView[i]->start();
- mnLastPicTime[i] = 0;
- mbDraw[i] = false;
- }
- QTimer * timer = new QTimer();
- connect(timer,SIGNAL(timeout()),this,SLOT(onTimerPic()));
- timer->start(10);
- setWindowTitle("View All Picture");
- }
- DialogPic::~DialogPic()
- {
- qDebug("delete dialog");
- delete ui;
- }
- void DialogPic::resizeEvent(QResizeEvent *event)
- {
- (void)event;
- QRect rect = this->geometry();
- double fwidth = rect.width()/2;
- double fheight = rect.height()/2;
- mpview[0]->setGeometry(0,0,fwidth,fheight);
- mpview[1]->setGeometry(fwidth,0,fwidth,fheight);
- mpview[2]->setGeometry(0,fheight,fwidth,fheight);
- mpview[3]->setGeometry(fwidth,fheight,fwidth,fheight);
- // rect.setX(rect.x());
- }
- void DialogPic::onTimerPic()
- {
- int i;
- if(mbRefresh == false)return;
- bool bUpdate = false;
- for(i=0;i<4;i++)
- {
- if(mnLastPicTime[i] != gTimeRawPic[i])
- {
- gMutexPic[i].lock();
- mpPicView[i]->SetPic(grawpic[i]);
- gMutexPic[i].unlock();
- bUpdate = true;
- mbDraw[i] = true;
- }
- }
- if(bUpdate)update();
- }
- void DialogPic::paintEvent(QPaintEvent *)
- {
- int i;
- for(i=0;i<4;i++)
- {
- if(mbDraw[i])
- {
- QImage image = mpPicView[i]->GetImage();
- mscene[i]->clear();
- mscene[i]->addPixmap(QPixmap::fromImage(image));
- mpview[i]->setScene(mscene[i]);
- mpview[i]->show();
- }
- mbDraw[i] = false;
- }
- }
- void DialogPic::setRefresh(bool brefresh)
- {
- mbRefresh = brefresh;
- }
|