1.widget.cpp
#include "widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent): QWidget(parent)
{this->resize(640, 480);// 请根据各自的摄像头节点填写m_qcamera = new QCamera("/dev/video0", this);if (!m_qcamera) {qDebug() << "摄像头初始化失败!";}QCameraViewfinderSettings settings;// 设置分辨率settings.setResolution(640, 480);m_qcamera->setViewfinderSettings(settings);m_videoWidget = new QVideoWidget(this);m_videoWidget->resize(this->size());// 设置视频输出m_qcamera->setViewfinder(m_videoWidget);m_qcamera->start();// 注m_videoWidget有可能刷新延时,可能是Qt底层刷新问题// 这里用QVideoWidget只是用于测试,请用update()延时更新m_videoWidget->show();
}Widget::~Widget()
{}
2.widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QCamera>
#include <QVideoWidget>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();// 声明对象QCamera *m_qcamera;QVideoWidget *m_videoWidget;
};
#endif // WIDGET_H
3.效果