qt二维码示例
来源:互联网 发布:配电网负荷数据 编辑:程序博客网 时间:2024/04/28 01:29
移动终端的普及,二维码的使用越来越广泛,最近小小的研究了一下QT下二维码的使用。
二维码(Two-dimensional code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白
二维码(Two-dimensional code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白
相间的图形,是所有信息数据的一把钥匙。在现代商业活动中,可实现的应用十分广泛,如:产品防伪/溯源、广告推送、
网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理、信息传递、名片交流、wifi共享等。如今智能手机扫
一扫(简称313)功能的应用使得二维码更加普遍。
本文开发二维码的小工具采用的就是QZXing库。库的使用方法很简单,从上面网址上下载下来源代码,源代码根目录下有
QZXing:Qt包装ZXing的解码库。
网址:http://sourceforge.net/projects/qzxing.
更多参考:https://projects.developer.nokia.com/QZXing. 本文开发二维码的小工具采用的就是QZXing库。库的使用方法很简单,从上面网址上下载下来源代码,源代码根目录下有
个pri文件,因为我是在VS2010中开发的,按道理是可以在VS工程中编译这包源码包的。但是编译总是失败。所以采用另
外的方法,新建个QTcreator工程,在工程中把源码包拷贝进工程中,再在pro工程文件中加上include (QZXing/QZXing.pri)。
编译即可生成dll文件。可能qtcreator采用的mingw编译器,编译生成的dll在msvc中不能静态加载。尝试了静态加载都是失
败的,而采用QT自带的QLibrary加载DLL是成功的。
程序运行效果如下:
启动后
选择二维码图片后效果:
1.自定义一个窗体类QrCodeForm.h
2.窗体类实现 QrCodeForm.cpp
qt版本:4.8.6,开发环境:vs2010
源码下载地址:http://download.csdn.net/detail/hiwubihe/9542092
注:
原文:http://blog.csdn.net/hiwubihe/article/details/38679621
程序运行效果如下:
启动后
选择二维码图片后效果:
1.自定义一个窗体类QrCodeForm.h
typedef bool (*fpGetQrStr)(const char*, char*, int);
class CQrCodeForm : public UiBaseDialog
{
Q_OBJECT
public:
CQrCodeForm(QWidget *parent = 0);
~CQrCodeForm();
private slots:
void slots_file_selected();
private:
Ui::Form ui;
QString m_fileName;
QLibrary *pdllLib;
fpGetQrStr GetQrStr;
};
2.窗体类实现 QrCodeForm.cpp
CQrCodeForm::CQrCodeForm(QWidget *parent)
: UiBaseDialog(parent)
{
ui.setupUi(this);
createTitleBar(ui.Title,WindowToolMin | WindowToolClose,tr("二维码识别"));
QDesktopWidget *desk=QApplication::desktop();
int wd=desk->width();
int ht=desk->height();
this->move((wd-width())/2,(ht-height())/2);
connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(slots_file_selected()));
pdllLib =new QLibrary("QTCode.dll");
if(!pdllLib->load())
{
return ;
}
else
{
GetQrStr=(fpGetQrStr)pdllLib->resolve("GetQrStr");
if(GetQrStr == NULL)
{
return ;
}
}
return ;
}
CQrCodeForm::~CQrCodeForm()
{
}
void CQrCodeForm::slots_file_selected()
{
m_fileName = QFileDialog::getOpenFileName(this,
tr("二维码打开文件"),
"C:\\",
tr("任何文件(*.*)"
";;文本文件(*.png)"
));
ui.lineEdit->setText(m_fileName);
//
char buffer[QRBUFSIZ] = {0};
bool bResult = GetQrStr(m_fileName.toStdString().c_str(), buffer, QRBUFSIZ);
//UTF-8编码
QString ss = QTextCodec::codecForName("UTF-8")->toUnicode(buffer);
if(bResult)
{
ui.textEdit->setText(ss);
QImage* img=new QImage;
//加载图像
if(! ( img->load(m_fileName) ) )
{
QMessageBox::information(this,
tr("打开图像失败"),
tr("打开图像失败!"));
delete img;
return;
}
* img=img->scaled(ui.label->width(),ui.label->height(),Qt::KeepAspectRatio);
ui.label->setPixmap(QPixmap::fromImage(*img));
}
else
{
ui.textEdit->setText(tr("图片不是合法二维图片"));
}
}
qt版本:4.8.6,开发环境:vs2010
源码下载地址:http://download.csdn.net/detail/hiwubihe/9542092
注:
技术在于交流、沟通,转载请注明出处并保持作品的完整性。
作者:程序人生 原文:http://blog.csdn.net/hiwubihe/article/details/38679621
0 0
- qt二维码示例
- 二维码ZXingDemo示例
- JavaScript生成二维码示例
- 简单二维码示例
- Qt 二维码生成
- qt实现二维码生成
- Qt之二维码扫描
- QT 二维码库
- Qt生成二维码
- QT二维码开源库qrencode
- Qt之二维码扫描
- <job_mode><Qt>二维码生成
- 生成二维码的简单示例
- 基于Qt的二维码生成器
- 基于Qt的二维码生成器
- Qt生成二维码和条码
- QT 生成二维码接口封装
- Qt编程公众号二维码
- Trigger Lesson
- 畅游Aarch64最方便的方法
- shell中的${},##和%%的使用
- object、param标签及页面显示PDF文件的方法
- Android面试必须要知道的事情
- qt二维码示例
- PHP代码如何实现获取真实IP和代理IP
- hduoj2042(不容易系列之二)
- Android ListView从网络获取图片及文字显示
- php开发常用代码片段(一)
- IIS不能对网站添加默认文档(由于权限不足而无法写入配置文件)
- HTML网页中的html body onload自动跳转方法介绍及自动跳转代码示例
- U-BOOT与内核之间的参数传递
- hduoj2098(分拆素数和)