QT5+zint库实现条形码二维码(一)

时间:2024-05-20 22:17:16

**

QT5+zint库实现条形码二维码(一)

**
关于二维码,QT是没有自己的库来实现的,需要使用第三方的库来实现,我选的zint库。
zint库的获取可以去官网下载,不过官网下载的库需要自己来编译,生成。
我参考网友: “夏叶秋花”的博客生成,但是最后收尾出了问题,应该是有些问题,
https://blog.****.net/xyxonline/article/details/51750299
有兴趣的可以去尝试一下。
后来我去网上下载了一套zint库。https://download.****.net/download/morg2/7007435
至于QT库的添加,大家可以网上找资料这里不赘述。
下面是我的代码大家可以参考,感谢 “ 芥末的无奈”“网络小虫”两位网友的分享,
https://blog.****.net/weiwei9363/article/details/81665927
https://www.cnblogs.com/foxhengxing/archive/2011/06/26/2090958.html

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"zint.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    EncodingAndSavingToFile();
    ui->setupUi(this);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::EncodingAndSavingToFile()
{
    struct zint_symbol *my_symbol;
    my_symbol = ZBarcode_Create();

    // Set output file name
    strcpy_s(my_symbol->outfile, "output.png");

    // Set encode data

    QString encode_data;  //("hello world");
    encode_data = "hello world";
    ZBarcode_Encode(my_symbol,(unsigned char*)"01234", 0);

    int error_num = ZBarcode_Print(my_symbol, 0);

    if (error_num != 0)
    {
        /* some error occurred */
        qDebug()<<QString::fromUtf8(my_symbol->errtxt);
    }

    ZBarcode_Delete(my_symbol);
}

注意:生成的图片后缀要是.png格式。
关于error_num,官方使用手册上有介绍:
QT5+zint库实现条形码二维码(一)
zint开发手册下载:
https://download.****.net/download/weiwei9363/10602828

最后放上我自己编译实现了的代码源文件
代码还在审核中,后面贴上来。