Изображения SVG не появляются после компиляции Python-кода PyQt4 с py2exe - PullRequest
4 голосов
/ 08 августа 2010

Я написал приложение на python, используя изображения svg в качестве значков.

QtGui.QIcon(':icons/icon.svg')  <- just like this

оно работает на моем компьютере, но после компиляции с py2exe и запуска на другом компьютере значков нет.если я попробую, например, формат BMP, все работает отлично.так что я думаю, что это может быть какая-то проблема с библиотекой.Я не знаю, что PyQt4 использует для графики SVG.

в файле setup.py, который я написал

dllList = ('mfc90.dll','msvcp90.dll','qtnetwork.pyd','qtxmlpatterns4.dll', 'qsvg4.dll', 'qsvgd4.dll')
origIsSystemDLL = py2exe.build_exe.isSystemDLL
def isSystemDLL(pathname):
    if os.path.basename(pathname).lower() in dllList:
        return 0
    return origIsSystemDLL(pathname)
py2exe.build_exe.isSystemDLL = isSystemDLL

setup(windows=[{"script" : "myApp.py"}], options={"py2exe" : {"includes" : ["sip", "PyQt4.QtNetwork", "PyQt4.QtWebKit", "PyQt4.QtSvg" ]}})

, а также папка imageformats (с qvg4.dll и т. Д.) Включена в myApp.exe каталог

так как решить эту проблему?

спасибо, jarek

Ответы [ 3 ]

3 голосов
/ 28 сентября 2010

Используемый плагин (Qt 4.6):

  • / плагинов
    • iconengines /
      • qsvgicon4.dll

Вам все еще нужен qt.conf, как объяснил Иво.

2 голосов
/ 12 августа 2010

Вы должны добавить qt.conf в основной каталог установки вашего приложения (фактически, рабочий каталог приложения), содержащий:

[Paths]
Plugins = <directory containing the image plugins directory>

Итак, структура каталога:

  • app.exe
  • qt.conf
  • plugins /
    • imageformats /
      • qsvg4.dll

И тогда в этом случае каталог в qt.conf будет plugins.

0 голосов
/ 14 февраля 2012

Для плагина qsvg требуется QtXml.Добавьте "PyQt4.QtXml" к вашим включениям.

Также смотрите зависимости библиотеки в Qt .

...