Featured image of post 使用pyqt5写个windows二维码工具3.0

使用pyqt5写个windows二维码工具3.0

工具说明

先看下最新版本工具界面 这里写图片描述

本次升级优化如下内容:

  • 增加解二维码功能
  • “二维码”和“logo文件”可直接拖进图片

这里写图片描述

源码解析

python二维码解析库常用的有zbar、zbarlight、zxing

1、zbar和zbarlight内核一致,都是基于zbar的dll编译加载的。 2、zbarlight使用比zbar更简单,不过是在zbar的基础又做了一点点封装而已。 3、zxing是基于java的zxing核心的python分支,其原理是调用javaw 加载zxing的core.jar包,再获取输出结果。

但zbar不支持python3,zbarlight也是同理。而zxing使用还得去调用java有些麻烦。之后在github找到了python3的库pyzbar

def decodeQr(filename):
    from pyzbar.pyzbar import decode

    if os.path.exists(filename):
        d =  decode(Image.open(filename))
        return  d[0].data
    else:
        return ''

pyqt5 输入控拖拽功能的实现

class LineEditEx(QtWidgets.QLineEdit):
	'''重写QLineEdit'''
    def __init__(self, parent=None):
        super().__init__(None, parent)
        self.setGeometry(50, 50, 100, 20)
        self.setAcceptDrops(True)
        self.setDragEnabled(True)  # 开启可拖放事件

    def dragEnterEvent(self, QDragEnterEvent):
        e = QDragEnterEvent
        if e.mimeData().hasText():
            e.accept()
        else:
            e.ignore()

    def dropEvent(self, e):
        file = str(e.mimeData().text()).split('file:///')[1]
        self.setText(file)

源码及工具

链接:https://pan.baidu.com/s/1rcAR-JpRcSb1uR3MdpqCTQ 密码:bu5q