**
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,官方使用手册上有介绍:
zint开发手册下载:
https://download.****.net/download/weiwei9363/10602828
最后放上我自己编译实现了的代码源文件
代码还在审核中,后面贴上来。