原文来自https://blog.csdn.net/gengyuchao/article/details/86523463。
用的是github上的大佬Nayuki开源的二维码生成,地址https://github.com/nayuki/QR-Code-generator
用法很简单,在你的项目文件中添加QrCode.cpp和QrCode.hpp即可。
void BindQRCode::showQRCode() { // Manual operation //参数为你想要生成的二维码内容 std::vector<QrSegment> segs = QrSegment::makeSegments("hello world"); //原作者这么写的,不知道是干啥用的 QrCode qr1 = QrCode::encodeSegments( segs, QrCode::Ecc::HIGH, 5, 5, 2, false); //创建二维码画布 QImage QrCode_Image=QImage(qr1.getSize(),qr1.getSize(),QImage::Format_RGB888); QrCode_Image.fill(Qt::transparent); for (int y = 0; y < qr1.getSize(); y++) { for (int x = 0; x < qr1.getSize(); x++) { //getModule(x, y)会返回指定位置的颜色 false为白色,true为黑色 if(qr1.getModule(x, y)) QrCode_Image.setPixel(x,y,qRgb(0,0,0)); else QrCode_Image.setPixel(x,y,qRgb(255,255,255)); } } //图像大小转换为适当的大小 QrCode_Image=QrCode_Image.scaled(ui->label_QR->width()-20, ui->label_QR->height()-20, Qt::KeepAspectRatio); //转换为QPixmap在Label中显示 ui->label_QR->setPixmap(QPixmap::fromImage(QrCode_Image)); ui->label_QR->setAlignment(Qt::AlignCenter); }