QR扫码综合示例教程(一)Qt5.15.2(widget)摄像头显示

前言:

Qt5.15.2作为当前开源的最后5系列版本,虽然还有不少bug,但在嵌入式等方向,还大有用处,本次示例先从获取摄像头的帧开始,仅使用Qt的库

一、新建Qt工程

编译系统使用qmake

 qt5.15.2的套件都可以使用

 二、修改工程文件

 在pro文件中,加入多媒体模块

QT += multimedia multimediawidgets

三、绘制测试UI

 这是笔者已绘制的UI

四、关键代码

    //初始化下拉择选项框
    const QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
    ui->comboBox->blockSignals(true);
    for (const QCameraInfo &cameraInfo : cameras) {
        qDebug()<<cameraInfo.deviceName()<<cameraInfo.description();
        ui->comboBox->addItem(cameraInfo.description(), cameraInfo.deviceName());
    }
    ui->comboBox->blockSignals(false);


    //初始化摄像头
    m_camera = new QCamera(QCameraInfo::defaultCamera());
    connect(m_camera, &QCamera::errorOccurred, [this](){
        qDebug()<< "camera error occurred"<<this->m_camera->errorString();
    });

    m_camera->setViewfinder(ui->videowidget);

五、运行程序

 点击开始或切换摄像头,就可以看到预览画面

示例源码下载

后记:

本示例笔者是在win10系统下进行的,其他平台可能会有一些差异

本示例仅是一测试程序,实际使用时,可能会遇到一些问题,请读者自行解决

也有读者要问,为什么不直接使用第三方库呢?笔者承认,不少第三方库,如opencv会很轻松打开摄像头,但需要引入第三方库。一方面,直接使用Qt库,就不用再引入库了;另一方面,opencv摄像头的唯一ID可能要自己做了,而Qt已经做好了

注:

1.当摄像头被其他程序占用时,Qt无法打开

2.当多个摄像头接入同一USB总线上时,若流量太大,可能无法同时打开多个摄像头

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁白杨树下꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值