Qt5中新增QZxing,識別二維碼和條形碼

Qt中新增QZxing,識別二維碼和條形碼

網上有很多關於在Qt中配置QZxing,識別二維碼和條形碼的博文,本文沒什麼特色,和其他博文大同小異。

Qt中新增QZxing有兩種方法:

  1. 直接在專案中包含QZxing原始碼,將原始碼編譯進專案中 。(本文使用這種方法)
  2. 使用QZxing原始碼,將QZxing編譯成驅動,使用呼叫驅動的方式。

效果圖:

條形碼:
這裡寫圖片描述
二維碼:
這裡寫圖片描述

使用方法:

下載QZxing的原始碼(GitHub地址:https://github.com/ruisebastiao/QZXing ),下載只有,在原始碼資料夾下有一個QZxing資料夾,資料夾中有QZXing.pri工程組織檔案,在pro檔案中新增QZxing的QZXing.pri工程管理檔案,如下圖:
這裡寫圖片描述

使用QZxing解碼的關鍵程式碼:

void MainWindow::on_pushButton_clicked()
{
m_fileName = QFileDialog::getOpenFileName(this,
tr("條形碼開啟檔案"),
"./",
tr("任何檔案(*.*)"
";;文字檔案(*.png)")
);
if(m_fileName.isEmpty() == false)
{
ui->statusBar->setToolTip(m_fileName);
QImage img;        //載入影象
if(!(img.load(m_fileName)))
{
QMessageBox::information(this,
tr("開啟影象失敗"),
tr("開啟影象失敗!"));
return;
}
img = img.scaled(ui->label_image->width(),ui->label_image->height(),Qt::KeepAspectRatio);
ui->label_image ->setPixmap(QPixmap::fromImage(img));
QZXing decoder(QZXing::DecoderFormat_QR_CODE | QZXing::DecoderFormat_CODE_128);
ui->lineEdit->setText(decoder.decodeImage(img));
}
}

demo下載地址:

Qt、C 程式設計交流群:302558294