QT学习_QT摄像头使用
Posted Leslie X徐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT学习_QT摄像头使用相关的知识,希望对你有一定的参考价值。
QT摄像头使用
mplayer
使用 mplayer tv:// 命令打开摄像头
void Widget::on_pushButton_4_clicked()
{
QStringList args;
args << "tv://";
args << "-wid";
args << QString::number(ui->widget->winId());
process->start("mplayer", args); //启动该进程,并传入参数args
ui->pushButton_4->setDisabled(true);
}
QCamera
首先需要以下库工具
sudo apt-get install qtmultimedia5-dev
sudo apt-get install libqt5multimedia5-plugins
显示:
pro文件
QT += core gui multimedia multimediawidgets
头文件
使用到的类有:
- QCamera
- QCameraInfo
- QCameraViewfinder
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QCamera>
#include <QCameraInfo>
#include <QList>
#include <QCameraViewfinder>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
QCamera *curCamera=Q_NULLPTR;
void initCamera();
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_actionStartCamera_triggered();
void on_actionStopCamera_triggered();
void on_actionQuit_triggered();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
源文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
void MainWindow::initCamera()
{
QCameraInfo curCameraInfo = QCameraInfo::defaultCamera();//获取缺省摄像头
ui->comboBox->addItem(curCameraInfo.description());
ui->comboBox->setCurrentIndex(0);
curCamera = new QCamera(curCameraInfo,this);
QCameraViewfinderSettings vfs;
//vfs.setResolution(ui->widget->size());
vfs.setResolution(640,480);
curCamera->setViewfinderSettings(vfs);
curCamera->setViewfinder(ui->widget);
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
if(cameras.size()>0){
initCamera();
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_actionStartCamera_triggered()
{
curCamera->start();
}
void MainWindow::on_actionStopCamera_triggered()
{
curCamera->stop();
}
void MainWindow::on_actionQuit_triggered()
{
curCamera->stop();
this->close();
}
以上是关于QT学习_QT摄像头使用的主要内容,如果未能解决你的问题,请参考以下文章