Commit 02779f89b9660fc53b114dc57221b321524c63e4
1 parent
0dd519e8
Camera
Showing
5 changed files
with
70 additions
and
13 deletions
camerawindow.cpp
| ... | ... | @@ -16,8 +16,8 @@ CameraWindow::CameraWindow(QWidget *parent) : |
| 16 | 16 | camera->start(); |
| 17 | 17 | |
| 18 | 18 | zxing = new QZXing( QZXing::DecoderFormat_QR_CODE, this ); |
| 19 | - //connect(zxing, SIGNAL(tagFound(QString)), this, SLOT(show_result(QString))); | |
| 20 | 19 | |
| 20 | + connect(zxing, SIGNAL(tagFound(QString)), this, SLOT(showResult(QString))); | |
| 21 | 21 | connect(cameraSurface, SIGNAL(novoFrame(QByteArray&,int,int)), this, SLOT(frameHandler(QByteArray&,int,int))); |
| 22 | 22 | } |
| 23 | 23 | |
| ... | ... | @@ -52,6 +52,17 @@ void CameraWindow::frameHandler(QByteArray &buff, int w, int h) |
| 52 | 52 | zxing->decodeImage( *img, w, h, true ); |
| 53 | 53 | |
| 54 | 54 | QImage imgTmp = img->scaled(w*.30, h*.30); |
| 55 | - //ui->label->setPixmap(QPixmap::fromImage(imgTmp)); | |
| 55 | + ui->label->setPixmap(QPixmap::fromImage(imgTmp)); | |
| 56 | 56 | buff.clear(); |
| 57 | 57 | } |
| 58 | + | |
| 59 | +void CameraWindow::closeEvent(QCloseEvent *event) | |
| 60 | +{ | |
| 61 | + emit close(); | |
| 62 | + event->accept(); | |
| 63 | +} | |
| 64 | + | |
| 65 | +void CameraWindow::showResult(QString result) | |
| 66 | +{ | |
| 67 | + ui->label_2->setText(result); | |
| 68 | +} | ... | ... |
camerawindow.h
| ... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 | #include <QCamera> |
| 6 | 6 | #include <QCameraImageCapture> |
| 7 | 7 | #include <QCameraViewfinder> |
| 8 | +#include <QCloseEvent> | |
| 8 | 9 | #include <QZXing.h> |
| 9 | 10 | #include "camerasurface.h" |
| 10 | 11 | |
| ... | ... | @@ -29,9 +30,14 @@ class CameraWindow : public QMainWindow |
| 29 | 30 | public: |
| 30 | 31 | explicit CameraWindow(QWidget *parent = 0); |
| 31 | 32 | ~CameraWindow(); |
| 33 | + virtual void closeEvent(QCloseEvent * event); | |
| 34 | + | |
| 35 | + signals: | |
| 36 | + void close(); | |
| 32 | 37 | |
| 33 | 38 | public slots: |
| 34 | 39 | void frameHandler(QByteArray&,int,int); |
| 40 | + void showResult(QString); | |
| 35 | 41 | }; |
| 36 | 42 | |
| 37 | 43 | #endif // CAMERAWINDOW_H | ... | ... |
camerawindow.ui
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 1 | 2 | <ui version="4.0"> |
| 2 | - <author/> | |
| 3 | - <comment/> | |
| 4 | - <exportmacro/> | |
| 5 | 3 | <class>CameraWindow</class> |
| 6 | 4 | <widget class="QMainWindow" name="CameraWindow"> |
| 7 | 5 | <property name="geometry"> |
| ... | ... | @@ -15,10 +13,46 @@ |
| 15 | 13 | <property name="windowTitle"> |
| 16 | 14 | <string>MainWindow</string> |
| 17 | 15 | </property> |
| 18 | - <widget class="QMenuBar" name="menubar"/> | |
| 19 | - <widget class="QWidget" name="centralwidget"/> | |
| 16 | + <widget class="QWidget" name="centralwidget"> | |
| 17 | + <widget class="QLabel" name="label"> | |
| 18 | + <property name="geometry"> | |
| 19 | + <rect> | |
| 20 | + <x>40</x> | |
| 21 | + <y>10</y> | |
| 22 | + <width>481</width> | |
| 23 | + <height>211</height> | |
| 24 | + </rect> | |
| 25 | + </property> | |
| 26 | + <property name="text"> | |
| 27 | + <string>Carregando...</string> | |
| 28 | + </property> | |
| 29 | + </widget> | |
| 30 | + <widget class="QLabel" name="label_2"> | |
| 31 | + <property name="geometry"> | |
| 32 | + <rect> | |
| 33 | + <x>30</x> | |
| 34 | + <y>240</y> | |
| 35 | + <width>241</width> | |
| 36 | + <height>81</height> | |
| 37 | + </rect> | |
| 38 | + </property> | |
| 39 | + <property name="text"> | |
| 40 | + <string>qrCode</string> | |
| 41 | + </property> | |
| 42 | + </widget> | |
| 43 | + </widget> | |
| 44 | + <widget class="QMenuBar" name="menubar"> | |
| 45 | + <property name="geometry"> | |
| 46 | + <rect> | |
| 47 | + <x>0</x> | |
| 48 | + <y>0</y> | |
| 49 | + <width>800</width> | |
| 50 | + <height>20</height> | |
| 51 | + </rect> | |
| 52 | + </property> | |
| 53 | + </widget> | |
| 20 | 54 | <widget class="QStatusBar" name="statusbar"/> |
| 21 | 55 | </widget> |
| 22 | - <pixmapfunction/> | |
| 56 | + <resources/> | |
| 23 | 57 | <connections/> |
| 24 | 58 | </ui> | ... | ... |
mainwindow.cpp
| ... | ... | @@ -7,7 +7,7 @@ MainWindow::MainWindow(QWidget *parent) : |
| 7 | 7 | { |
| 8 | 8 | ui->setupUi(this); |
| 9 | 9 | |
| 10 | - connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(addGame())); | |
| 10 | + connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(startCamera())); | |
| 11 | 11 | } |
| 12 | 12 | |
| 13 | 13 | MainWindow::~MainWindow() |
| ... | ... | @@ -16,9 +16,14 @@ MainWindow::~MainWindow() |
| 16 | 16 | delete cameraWindow; |
| 17 | 17 | } |
| 18 | 18 | |
| 19 | -void MainWindow::addGame() | |
| 19 | +void MainWindow::startCamera() | |
| 20 | 20 | { |
| 21 | - CameraWindow * cameraWindow = new CameraWindow(); | |
| 21 | + cameraWindow = new CameraWindow(); | |
| 22 | 22 | cameraWindow->show(); |
| 23 | - //hide(); | |
| 23 | + connect(cameraWindow, SIGNAL(close()), this, SLOT(stopCamera())); | |
| 24 | +} | |
| 25 | + | |
| 26 | +void MainWindow::stopCamera() | |
| 27 | +{ | |
| 28 | + delete cameraWindow; | |
| 24 | 29 | } | ... | ... |
mainwindow.h