当使用cx_freeze创建.exe时,未加载pyqt 5的jpeg图像

时间:2018-01-25 20:18:30

标签: python jpeg pyqt5 cx-freeze

我已经搜索了这个问题的所有现有解决方案,并尝试了所有这些,但我无法通过我的可执行文件在Pyqt5中加载我的图像。尝试的解决方案如下: 1.将图像格式文件夹复制到appdir,将dll复制到appdir本身 2.将plugins文件夹复制到appdir

这是我的代码段:

def __init__(self):

    QtWidgets.QMainWindow.__init__(self)
    Ui_abt_sw.__init__(self)
    #self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
    self.setupUi(self)
    if getattr(sys, 'frozen', False):
        # frozen
        scriptDir = os.path.dirname(sys.executable)
    else:
        # unfrozen
        scriptDir = os.path.dirname(os.path.realpath(__file__))
    self.setWindowIcon(QtGui.QIcon(scriptDir + os.path.sep + "dbIO_1.jpg" ))
    self.label_3.setPixmap(QtGui.QPixmap(scriptDir + os.path.sep + 
                                                     "dbio_icon.jpg"))

我还尝试将插件文件夹文件添加到应用程序中作为推荐的解决方案之一。

如果名称 ==“主要”:

app = QtWidgets.QApplication(sys.argv)
if getattr(sys, 'frozen', False):
        # frozen
        scriptDir = os.path.dirname(sys.executable)
else:
        # unfrozen
        scriptDir = os.path.dirname(os.path.realpath(__file__))

QtCore.QCoreApplication.addLibraryPath(scriptDir + os.path.sep + "plugins")   
QtGui.QImageReader.supportedImageFormats()

我的appdir中有jpeg文件“dbio.jpg”和“dbIO_1.jpg”。尝试完所有内容后,如果我运行使用cx_freeze创建的.exe文件,则无法获取图像(标签)或GUI中的图标。但是,如果我从spyder运行它(我在anaconda上使用spyder),图像是可见的。当我尝试添加它们时,同样的问题也适用于我的窗口图标。

非常感谢这方面的任何帮助。

0 个答案:

没有答案