前言
最近在维护自己开设的公众号,偶尔需要生成二维码。二维码生成很多但大多都是网页版本。python生成二维码之前也实现过,所以有空闲自己使用pyqt5写个windows工具。
正文
将数据生成二维
这里有个坑qrcode模块需要image支持。测试过程中因为没有安装image模块,一调试程序就退出。纠结了大半个小时
import qrcode
def createQR(data, filename=''):
fn = ''
if filename == '':
fn = os.path.join(os.getcwd(), 'qrcode_tmp.png')
else:
fn = os.path.join(os.getcwd(), filename)
img = qrcode.make(data)
# img.get_image().show()显示
img.save(fn)
return fn
pyqt5前端界面
一个输入框获取用户需要转二维码的数据,一个按钮执行转换,很简单。(网上现学现卖)
class MyView(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 设置窗口的位置和大小
self.setGeometry(300, 300, 300, 220)
# 设置窗口的标题
self.setWindowTitle('Icon')
self.setWindowIcon(QIcon('web.png'))
# 创建一个okButton并设置响应函数
self.okButton = QPushButton("action")
self.okButton.clicked.connect(self.doAction)
self.qline = QLineEdit(self)
vbox = QVBoxLayout()
vbox.addWidget(self.qline)
vbox.addWidget(self.okButton)
self.setLayout(vbox)
self.show()
def doAction(self):
data = self.qline.text()
fn = createQR(data)
QMessageBox.information(self, "二维码生成",
fn,QMessageBox.Yes)
if __name__ == '__main__':
# 创建应用程序和对象
app = QApplication(sys.argv)
ex = MyView()
sys.exit(app.exec_())
pyinstaller打包成exe程序
pyinstaller -F -w windows_qrcode.py
windows二维码工具就完成了。
前后1个半小时(pyqt5界面花了点时间,qrcode坑捣鼓了半个小时)。代码很粗糙有兴趣的朋友可以继续完善,比如直接在前端界面显示二维码,或加入logo等等。