QML调用安卓系统摄像头扫描二维码(已封装成模块可移植到QWidget 项目)

QT中使用qml调用安卓摄像头扫描二维码

已实现功能

1.根据字符串生成二维码
2.解析二维码图片返回字符串
3.调用安卓系统摄像头扫描二维码
4.打开安卓系统闪光灯
5.模块可集成到QWidget项目中使用

使用说明

模块集成到QWidget中

1.将模块文件夹AndroidScan复制到项目pro目录下
2.在项目pro文件中引入模块include(AndroidScan/AndroidScan.pri)
3.在项目中引入类DealQml且包含信号槽connect(&m_dealQml,&DealQml::SigParentShow,[=](int val,QString ret){ // ret为扫描结果,val为预留参数暂时无用});
例如:
在构造函数中绑定槽函数
 connect(&m_dealQml,&DealQml::SigParentShow,[=](int val,QString ret){
        this->show();
        m_dealQml.deleteQml();
       qDebug()<<"扫描结果为:"<<ret;
    });
  // 点击按钮调用
  connect(ui->openScanBtn,&QPushButton::clicked,[=](){
       this->hide();
       m_dealQml.enterScanPage();
  });

生成二维码

// label 显示二维码
QImage img = QZXing::fromStringToImage(content);
img = img.scaled(ui->label->width(),ui->label->height());
ui->label->setPixmap(QPixmap::fromImage(img));

解析二维码图片返回字符串

QString filePath = "/edc.png";
QZXing decor;
QString ret = decor.decodeImageFromFile(filePath);

你可能感兴趣的:(QT,C++,qt,qml,c++)