zy215215 2022-02-23 00:05 采纳率: 0%
浏览 19

正常编译运行的程序,使用pyinstallerda打包exe却不能完整使用其功能

如图所示:文件结构只有一个 BeautyQR_PRO.py,另外一个就是ui.py。生成JPG图片的二维码没问题,生成GIF图片的二维码就反馈问题(第二张图是生成的exe黑窗报错,在不生成exe时是可以生成GIF二维码的),尝试过nuitka打包,太难了,不适合我。

img

img

img


附带我的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_())


  • 写回答

2条回答 默认 最新

报告相同问题?

问题事件

  • 修改了问题 2月23日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 labelme生成的json有乱码?
  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 关于#c++#的问题:(2)运算二叉树·表达式一般由一个运算符和两个操作数组成:(相关搜索:二叉树遍历)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统