diff --git a/camerawindow.cpp b/camerawindow.cpp index 2c107ee..8bfdc34 100644 --- a/camerawindow.cpp +++ b/camerawindow.cpp @@ -16,8 +16,8 @@ CameraWindow::CameraWindow(QWidget *parent) : camera->start(); zxing = new QZXing( QZXing::DecoderFormat_QR_CODE, this ); - //connect(zxing, SIGNAL(tagFound(QString)), this, SLOT(show_result(QString))); + connect(zxing, SIGNAL(tagFound(QString)), this, SLOT(showResult(QString))); connect(cameraSurface, SIGNAL(novoFrame(QByteArray&,int,int)), this, SLOT(frameHandler(QByteArray&,int,int))); } @@ -52,6 +52,17 @@ void CameraWindow::frameHandler(QByteArray &buff, int w, int h) zxing->decodeImage( *img, w, h, true ); QImage imgTmp = img->scaled(w*.30, h*.30); - //ui->label->setPixmap(QPixmap::fromImage(imgTmp)); + ui->label->setPixmap(QPixmap::fromImage(imgTmp)); buff.clear(); } + +void CameraWindow::closeEvent(QCloseEvent *event) +{ + emit close(); + event->accept(); +} + +void CameraWindow::showResult(QString result) +{ + ui->label_2->setText(result); +} diff --git a/camerawindow.h b/camerawindow.h index fdf37f8..88b2bc0 100644 --- a/camerawindow.h +++ b/camerawindow.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include "camerasurface.h" @@ -29,9 +30,14 @@ class CameraWindow : public QMainWindow public: explicit CameraWindow(QWidget *parent = 0); ~CameraWindow(); + virtual void closeEvent(QCloseEvent * event); + + signals: + void close(); public slots: void frameHandler(QByteArray&,int,int); + void showResult(QString); }; #endif // CAMERAWINDOW_H diff --git a/camerawindow.ui b/camerawindow.ui index da1cacb..05a5141 100644 --- a/camerawindow.ui +++ b/camerawindow.ui @@ -1,7 +1,5 @@ + - - - CameraWindow @@ -15,10 +13,46 @@ MainWindow - - + + + + + 40 + 10 + 481 + 211 + + + + Carregando... + + + + + + 30 + 240 + 241 + 81 + + + + qrCode + + + + + + + 0 + 0 + 800 + 20 + + + - + diff --git a/mainwindow.cpp b/mainwindow.cpp index a921926..36eec00 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -7,7 +7,7 @@ MainWindow::MainWindow(QWidget *parent) : { ui->setupUi(this); - connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(addGame())); + connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(startCamera())); } MainWindow::~MainWindow() @@ -16,9 +16,14 @@ MainWindow::~MainWindow() delete cameraWindow; } -void MainWindow::addGame() +void MainWindow::startCamera() { - CameraWindow * cameraWindow = new CameraWindow(); + cameraWindow = new CameraWindow(); cameraWindow->show(); - //hide(); + connect(cameraWindow, SIGNAL(close()), this, SLOT(stopCamera())); +} + +void MainWindow::stopCamera() +{ + delete cameraWindow; } diff --git a/mainwindow.h b/mainwindow.h index b8917bd..4b2a0ad 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -18,7 +18,8 @@ class MainWindow : public QMainWindow explicit MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: - void addGame(); + void startCamera(); + void stopCamera(); }; #endif // MAINWINDOW_H