如何用Qt和Python创建跨平台的桌面扫码程序

本文介绍如何利用Qt Designer和Python的PySide2库创建一个跨平台的桌面应用,实现摄像头实时扫码和图像文件的barcode识别。首先安装Python依赖,包括OpenCV、Dynamsoft Barcode Reader和PySide2。接着使用Qt Designer设计UI,将.ui文件转换为.py文件。代码中加载UI并绑定功能,包括读取和保存文件、图像解码以及摄像头实时扫码。最后展示了在Windows和Raspberry Pi OS上的运行效果,并提供了源码链接。
摘要由CSDN通过智能技术生成

最近想为树莓派写个带界面的扫码应用,想到了Qt。Qt+Python搭建跨平台的界面应用非常快。

安装Python依赖

  • OpenCV

    python3 -m pip install opencv-python
    
  • Dynamsoft Barcode Reader

    python3 -m pip install dbr
    
  • PySide2

    Windows, Linux and macOS

    python3 -m pip install PySide2
    

    Raspberry Pi OS

    apt-get install python3-pyside2.qt3dcore python3-pyside2.qt3dinput python3-pyside2.qt3dlogic python3-pyside2.qt3drender python3-pyside2.qtcharts python3-pyside2.qtconcurrent python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qthelp python3-pyside2.qtlocation python3-pyside2.qtmultimedia python3-pyside2.qtmultimediawidgets python3-pyside2.qtnetwork python3-pyside2.qtopengl python3-pyside2.qtpositioning python3-pyside2.qtprintsupport python3-pyside2.qtqml python3-pyside2.qtquick python3-pyside2.qtquickwidgets python3-pyside2.qtscript python3-pyside2.qtscripttools python3-pyside2.qtsensors python3-pyside2.qtsql python3-pyside2.qtsvg python3-pyside2.qttest python3-pyside2.qttexttospeech python3-pyside2.qtuitools python3-pyside2.qtwebchannel python3-pyside2.qtwebsockets python3-pyside2.qtwidgets python3-pyside2.qtx11extras python3-pyside2.qtxml python3-pyside2.qtxmlpatterns python3-pyside2uic
    

Qt Designer

Windows上安装PySide2之后,可以在Python\Lib\site-packages\PySide2\目录找到designer.exe。用Qt designer来设计界面比直接写代码快多了。

在这里插入图片描述
完成界面之后,保存到*.ui文件。然后转换成*.py文件:

pyside2-uic design.ui -o design.py

Python代码

加载UI

在代码中加载刚才生成的UI:

'''
Usage:
   app.py <license.txt https://www.dynamsoft.com/customer/license/trialLicense>
'''

import sys
from PySide2.QtGui import QPixmap, QImage
from PySide2.QtWidgets import QApplication, QMainWindow, QInputDialog
from PySide2.QtCore import QFile, QTimer
from PySide2.QtWidgets import *
from design import Ui_MainWindow

from barcode_manager import *
import os
import cv2
from dbr import EnumBarcodeFormat, EnumBarcodeFormat_2

class MainWindow(QMainWindow):
    def __init__(self, license):
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        
def main():
    try:
        with open(sys.argv[1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值