【问题标题】:py2exe and QSplashScreenpy2exe 和 QSplashScreen
【发布时间】:2011-07-06 13:30:48
【问题描述】:

我想将 QSplashScreen 添加到 PyQT4 应用程序。它在 Python 中运行良好, 但是当我使用 py2exe 创建 exe 时,启动图像是不可见的,应用程序等待 2 秒并显示主窗口。怎么了?

应用代码:

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)

    # Create and display the splash screen
    splash_pix = QPixmap('images/splash.jpg')
    splash = QSplashScreen(splash_pix, QtCore.Qt.WindowStaysOnTopHint)
    splash.setMask(splash_pix.mask())
    splash.show()
    app.processEvents()

    time.sleep(2)

    myapp = Main()
    myapp.show()
    splash.finish(myapp)
    sys.exit(app.exec_())

setup.py:

#!/usr/bin/env python

from py2exe.build_exe import py2exe
from distutils.core import setup

setup(name='-',
      version='1.0',
      description='-',
      author='-',
      author_email='-',
      windows=[{"script": "main.py"}],
      data_files=[
                ('phonon_backend', [
                    'C:\Python26\Lib\site-packages\PyQt4\plugins\phonon_backend\phonon_ds94.dll'
                    ]),
                  'settings.yaml',
                  ('images', ['images/accept.png',
                              'images/splash.jpg',

                              ]),
                  'loader.png',
                  'licence.txt',
                  'about.txt',
                  ],
     )

【问题讨论】:

  • 预期的行为是什么? exe 在运行时出现错误和堆栈跟踪时是否会生成日志文件,还是会静默失败?你有没有实现任何类型的日志记录,可以让你看到它试图从哪个位置访问启动图像?

标签: python pyqt4 py2exe


【解决方案1】:

默认情况下支持PNG,JPEG支持是通过需要以某种方式包含的插件。

最近在 PySide 邮件列表上有一个关于 cx_freeze 的帖子,从 http://lists.pyside.org/pipermail/pyside/2010-December/001656.html 开始。 PyQt4 和 py2exe 的解决方案大致相同。

final solution 基本上是这样的:

在生成的 .exe 文件旁边,将 qt.conf 放入其中:

[Paths]
Plugins = plugins

(您可以使用“plugins”以外的值,更改子目录名称以匹配。)

创建一个子目录plugins,并在其中创建另一个子目录imageformats。在此处复制qjpeg4.dll。它将位于C:\Python27\Lib\site-packages\PyQt4\plugins\imageformats 之类的路径中。

【讨论】:

    【解决方案2】:

    这可能是您需要 QT 的 qjpeg4.dll。尝试复制以下文件夹:

    <python-dir>\Lib\site-packages\PyQt4\plugins\imageformats
    

    进入包含 py2exe 创建的 exe 的文件夹。

    如果您是从 Riverbank 站点的 PyQt4 二进制安装文件安装的,它就会出现在那里。如果您有不同的安装设置,请四处寻找。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      • 2011-11-19
      • 2011-06-28
      相关资源
      最近更新 更多