py2exe и QSplashScreen - PullRequest
       43

py2exe и QSplashScreen

2 голосов
/ 06 июля 2011

Я хочу добавить QSplashScreen в приложение PyQT4.Он отлично работает с Python, но когда я создаю exe с py2exe, изображение-заставка не видно, приложение ждет 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',
                  ],
     )

Ответы [ 2 ]

2 голосов
/ 06 июля 2011

Поддержка PNG предоставляется по умолчанию, поддержка JPEG осуществляется с помощью плагина, который необходимо каким-то образом включить.

Недавно в списке рассылки PySide появилась тема о подобных вещах с помощью cx_freeze, запускаетсяна http://lists.pyside.org/pipermail/pyside/2010-December/001656.html. решение будет примерно одинаковым для PyQt4 и py2exe.

Окончательное решение было в основном так:

Рядом с произведенным.exe-файл, поместите qt.conf с этим в нем:

[Paths]
Plugins = plugins

(Вы можете использовать значение, отличное от «plugins», измените имя подкаталога для соответствия.)

Создать подкаталогplugins и в нем другой подкаталог imageformats.Скопируйте qjpeg4.dll здесь.Это будет в пути, как C:\Python27\Lib\site-packages\PyQt4\plugins\imageformats.

1 голос
/ 06 июля 2011

Возможно, вам нужен QT qjpeg4.dll. Попробуйте скопировать следующую папку:

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

в папку, содержащую исполняемый файл, создаваемый py2exe.

Вот где это будет, если вы установили из двоичного установочного файла PyQt4 с сайта Riverbank. Если у вас другая установка, поищите.

...