#include "mainwindow.h" #include "ui_mainwindow.h" bool checkCameraAvailability() { if (QCameraInfo::availableCameras().count() > 0) return true; else return false; } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QCameraInfo info = QCameraInfo::defaultCamera(); if (!info.isNull()) { camera = new QCamera(info); camera->setCaptureMode(QCamera::CaptureStillImage); viewfinder = new QCameraViewfinder; camera->setViewfinder(viewfinder); viewfinder->show(); imageCapture = new QCameraImageCapture(camera); connect(imageCapture, SIGNAL(readyForCaptureChanged(bool)), SLOT(updateCameraInfo())); updateCameraInfo(); connect(ui->pbCapture, SIGNAL(clicked()), SLOT(capture())); } ui->statusBar->showMessage(tr("There are %1 cameras").arg(checkCameraAvailability())); } MainWindow::~MainWindow() { delete imageCapture; delete viewfinder; delete camera; delete ui; } void MainWindow::updateCameraInfo() { ui->labCameraReady->setText(imageCapture->isReadyForCapture() ? "ready" : "not ready"); } void MainWindow::capture() { camera->start(); camera->searchAndLock(); imageCapture->capture("test.png"); camera->unlock(); }