学习记录-Qt读取条码扫描枪
2016-03-08 22:33
405 查看
一、条码简介
条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。
一维码是用条空在水平方向上表达信息的条码,外形更接近矩形;二维码可以说是正方形,在其内部有三个“回”字型的定位点,可以帮助条码设备对焦,便于读取数据。一维码的信息部分只能是字母和数字,它的数据容量较小一般只可容纳30个字符左右。二维码的信息承载量很大,最大数据含量可达1850个字符,信息内容可包含,字母,数字,汉字,字符,片假名等。一维码的常用码制包括:EAN码、39码、交叉25码、UPC码、128码、93码,ISBN码,及Codabar(库德巴码)等;二维码常用的码制有:PDF417二维条码,Datamatrix二维条码,QR
Code,Code 49,Code 16K,Code one等。
二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,其应用广泛,如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理、信息传递、名片交流、wifi共享等。
二、条码枪
因为是要使用一维条码枪,所以查资料得知,市面上一维条码枪一般有三种接口类型,USB、keyboard和com接口,其实USB和keyboard接口都是HID设备。
三、编程实现
条码枪扫描到条码后会自动发送一串字符串,只要写程序接收字符串进行处理即可。假如使用HID接口的条码枪,那么它相当于一个键盘,在Qt程序中只要做一个文本输入框将光标移入,条码枪扫描到信息便会发送一个字符串,并显示在输入框中。若是使用串口(COM)接口的条码枪,则使用Qt编程打开连接的串口进行监听,将条码枪传送的数据进行处理即可。
主要函数:
条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。
一维码是用条空在水平方向上表达信息的条码,外形更接近矩形;二维码可以说是正方形,在其内部有三个“回”字型的定位点,可以帮助条码设备对焦,便于读取数据。一维码的信息部分只能是字母和数字,它的数据容量较小一般只可容纳30个字符左右。二维码的信息承载量很大,最大数据含量可达1850个字符,信息内容可包含,字母,数字,汉字,字符,片假名等。一维码的常用码制包括:EAN码、39码、交叉25码、UPC码、128码、93码,ISBN码,及Codabar(库德巴码)等;二维码常用的码制有:PDF417二维条码,Datamatrix二维条码,QR
Code,Code 49,Code 16K,Code one等。
二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,其应用广泛,如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理、信息传递、名片交流、wifi共享等。
二、条码枪
因为是要使用一维条码枪,所以查资料得知,市面上一维条码枪一般有三种接口类型,USB、keyboard和com接口,其实USB和keyboard接口都是HID设备。
三、编程实现
条码枪扫描到条码后会自动发送一串字符串,只要写程序接收字符串进行处理即可。假如使用HID接口的条码枪,那么它相当于一个键盘,在Qt程序中只要做一个文本输入框将光标移入,条码枪扫描到信息便会发送一个字符串,并显示在输入框中。若是使用串口(COM)接口的条码枪,则使用Qt编程打开连接的串口进行监听,将条码枪传送的数据进行处理即可。
主要函数:
void keyPressEvent(QKeyEvent *keyValue);
QString barStr;
QString curStr;
void MainWindow::keyPressEvent(QKeyEvent *keyValue)
{
if(keyValue->key() == Qt::Key_Return){//enter
curStr = ui->lineEdit->text();
ui->lineEdit->setText(barStr);
barStr.clear();
}else{
barStr += keyValue->text();
}
qDebug() << "enter!";
}
相关文章推荐
- QT-QMainWindow布局设置
- Qt:parent参数
- Qt中ioctl
- QT4.8.6静态编译
- 关于Qt调用多个.m文件形成的函数问题。
- Win7 Qt4.8.5+QtCreator2.8.0+mingw配置过程
- Qt5官方demo解析集21——Extending QML - Adding Types Example
- QT中如何给QTabWidget的整个Tab页添加border边框
- Qt自定义Combox(类似单选按钮功能)
- linux系统Qt调用opencv的编译过程(ubuntu14.04 kylin+qt5.5+opencv2.4.10)
- QT中布局器的addStretch函数使用效果1
- Qt5.3.2_CentOS6.4(x86)_代码文件编码
- qt中如何由Double类型变为QString类型以及chop()的使用
- Qt入门-表格类QTableWidget
- Qt中Q_D宏及d指针
- paho mqtt资源地址
- 字符编码转换 QT
- Qt5.0.2无法发布问题
- QT 相关
- QT小插件类之QRoundProgressBar