我使用svg图像作为图标编写了python应用程序。
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" ]}})
并且还包含myApp.exe目录中的imageformats文件夹(包含qvg4.dll等)
那怎么解决这个问题呢?
感谢, 亚雷克
答案 0 :(得分:3)
使用的插件(Qt 4.6)是:
正如Ivo解释的那样,你仍然需要qt.conf。
答案 1 :(得分:2)
您必须在应用程序的主安装目录(实际上是应用程序的工作目录)中添加qt.conf
,其中包含:
[Paths]
Plugins = <directory containing the image plugins directory>
所以目录布局是:
然后在这种情况下,qt.conf
中的目录为plugins
。
答案 2 :(得分:0)
qsvg
插件需要QtXml
。将"PyQt4.QtXml"
添加到您的包含中。