最近想为树莓派写个带界面的扫码应用,想到了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]