学习记录-Qt读取条码扫描枪

时间:2023-01-13 11:43:01

一、条码简介

      条形码(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!";
}