首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用py2exe编译PyQt4 python代码后不显示SVG图像

使用py2exe编译PyQt4 python代码后不显示SVG图像
EN

Stack Overflow用户
提问于 2010-08-08 23:19:03
回答 3查看 1.3K关注 0票数 4

我写的python应用程序使用svg图像作为图标。

代码语言:javascript
复制
QtGui.QIcon(':icons/icon.svg')  <- just like this

它可以在我的电脑上运行,但在用py2exe编译并在另一台电脑上运行后,就没有图标了。如果我尝试一下,比如bmp格式,一切正常。所以我认为这可能是某个库的问题。我不知道PyQt4对svg图形使用的是什么。

在我写的setup.py文件中

代码语言:javascript
复制
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" ]}})

也有imageformat文件夹(有qvg4.dll等)包含在myApp.exe目录中

那么如何解决这个问题呢?

谢谢,jarek

EN

回答 3

Stack Overflow用户

发布于 2010-09-28 18:11:34

使用的插件(Qt 4.6)是:

  • qsvgicon4.dll

  • 插件/
    • iconengine/iconengines

正如伊沃解释的那样,你仍然需要qt.conf。

票数 3
EN

Stack Overflow用户

发布于 2010-08-12 23:20:44

您必须在应用程序的主安装目录(实际上是应用程序的工作目录)中添加一个qt.conf,其中包含:

代码语言:javascript
复制
[Paths]
Plugins = <directory containing the image plugins directory>

因此,目录布局为:

  • app.exe
  • qt.conf
  • plugins/
    • 图像格式/
      • qsvg4.dll

在本例中,qt.conf中的目录是plugins

票数 2
EN

Stack Overflow用户

发布于 2012-02-14 05:50:16

qsvg插件需要QtXml。将"PyQt4.QtXml"添加到includes中。

另请参阅library dependencies in Qt

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3434817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档