Я перешел по указанной вами ссылке. Но я не понял точного способа решения проблемы.
Вот код, который я использовал для подключения к камере:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connected = false;
camera = new QCamera();
qDebug() << "Number of cameras found:" << QCameraInfo::availableCameras().count();
QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
foreach (const QCameraInfo &cameraInfo, cameras)
{
qDebug() << "Camera info:" << cameraInfo.deviceName() << cameraInfo.description() << cameraInfo.position();
ui->comboBox->addItem(cameraInfo.description());
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
if(!connected)
connectCamera();
else {
camera->stop();
viewfinder->deleteLater();
ui->pushButton->setText("Connect");
connected = false;
}
}
void MainWindow::connectCamera()
{
QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
foreach (const QCameraInfo &cameraInfo, cameras)
{
qDebug() << cameraInfo.description() << ui->comboBox->currentText();
if(cameraInfo.description()==ui->comboBox->currentText()) {
camera = new QCamera(cameraInfo, this);
viewfinder = new QCameraViewfinder(this);
camera->setViewfinder(viewfinder);
ui->horizontalLayout_2->addWidget(viewfinder);
connected = true;
ui->pushButton->setText("Disconnect");
camera->start();
return;
}
}
}