如图所示:文件结构只有一个 BeautyQR_PRO.py,另外一个就是ui.py。生成JPG图片的二维码没问题,生成GIF图片的二维码就反馈问题(第二张图是生成的exe黑窗报错,在不生成exe时是可以生成GIF二维码的),尝试过nuitka打包,太难了,不适合我。
附带我的BeautyQR_PRO.py代码:
# -*- coding:utf-8
from ui import *
from PyQt5.QtWidgets import QWidget, QFileDialog,QApplication
from PyQt5.QtGui import QPixmap,QMovie
import sys
import os
from MyQR import myqr #二维码模块导入
import cgitb
from PyQt5 import QtCore
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)#保持不同电脑上的尺寸显示问题
class mymain(QWidget):
def __init__(self, parent=None):
super().__init__(parent) #调用父类构造函数,创建QWidget窗口
self.ui=Ui_Form() #创建UI对象
self.ui.setupUi(self) #构造UI界面
self.ui.pushButton.clicked.connect(self.picture_button_click)
self.ui.pushButton_2.clicked.connect(self.save_dir_button_click)
self.ui.pushButton_3.clicked.connect(self.get_qrcode)
def picture_button_click(self):
import os
self.cwd = os.getcwd()
txt_file_path = QFileDialog.getOpenFileName(self, "选取文件", self.cwd)#,"JPG File (*.jpg);; PNG File (*.png)"
self.ui.lineEdit_2.setPlaceholderText(txt_file_path[0])
if self.ui.lineEdit_2.placeholderText()!= "":
picture_name = txt_file_path[0]
print(picture_name)
else:
picture_name = ''
def save_dir_button_click(self):
import os
self.cwd = os.getcwd()
directory = QFileDialog.getExistingDirectory(self, '选取文件夹', self.cwd)
print(directory)
self.ui.lineEdit_3.setPlaceholderText(directory)
'''words:二维码内容,链接或者句子
#version:二维码大小,范围为[1,40]
#level:二维码纠错级别,范围为{L,M,Q,H},H为最高级,默认。
#picture:自定义二维码背景图,支持格式为 .jpg,.png,.bmp,.gif,默认为黑白色
#colorized:二维码背景颜色,默认为 False,即黑白色
#contrast:对比度,值越高对比度越高,默认为 1.0
#brightness:亮度,值越高亮度越高,默认为 1.0,值常和对比度相同
#save_name:二维码名称,默认为 qrcode.png
#save_dir:二维码路径,默认为程序工作路径
'''
def get_qrcode(self):
filename=self.ui.lineEdit_2.placeholderText()
print(filename)
words=self.ui.lineEdit.text()
print(words)
filepath=self.ui.lineEdit_3.placeholderText()
print(filepath)
save_name='二维码生成结果.gif'
version=self.ui.spinBox.value()
myqr.run(words=words,\
version=version,\
level='H',
picture=filename,
colorized=True,\
#contrast=1.0,\
#brightness=1.0,\
save_name=save_name,\
save_dir=filepath
#save_dir=os.getcwd()#当前文件夹
)
#pix=QPixmap(filepath+'/'+save_name)
a=QMovie(filepath+'/'+save_name)
self.ui.label_4.setMovie(a)
a.start()
cgitb.enable(format='text')
if __name__ == "__main__":
app = QApplication(sys.argv) #创建App,用QApplication类
my=mymain()
my.show()
cgitb.enable(format='text')
sys.exit(app.exec_())