PySide找不到SVG图像格式?

7
我正在使用带有Qt集成的Eclipse中的PyDev插件。我已经安装了PySide,但是在处理SVG图像格式时遇到了麻烦。当我运行我的应用程序时,它会找到位于C:\Python27\Lib\site-packages\PySide\plugins\imageformats的所有格式,除了SVG格式。我可以删除qico4.dll,然后它就不再找到它们,重新放回去,它就又找到了。
我在我的代码中使用了这一行:plugs = QtGui.QImageReader.supportedImageFormats()
它找到了除qsvg4.dll中的SVG格式之外的所有格式?为什么会这样呢?我已经搜索了很多次,但似乎找不到原因。格式是否应该显示在支持的图像格式中?还需要做些其他事情才能使用SVG图像吗?我可以正常使用需要qico4.dll并位于相同位置的.ico文件,这就是我不理解问题所在的原因?谢谢您的帮助!

你能执行 from PySide import QtSvg 吗? - Avaris
是的,我可以这样做并使用它。但它仍然不显示在支持的图像格式中。我正在尝试以与样式表中ICO图像相同的方式使用SVG图像。无论我将ico放入资源文件还是直接链接到它,它都可以工作。无论哪种方式,svg文件都无法工作。这就是为什么我感到困惑的原因。似乎解释器正在寻找qsvg4.dll的其他位置?或者需要执行其他操作才能将其指定为图像格式? :-/ - user1301848
我甚至在运行视窗Vista的另一台计算机上设置了所有东西。另一台电脑是XP。仍然出现相同的问题。难道qsvg4.dll不应该像其他图像格式的dll一样工作吗?gif、jpeg等格式都能正常工作... - user1301848
很奇怪,我的 PySidePyQt4 在 Win7 上都能找到它。你用的是最新版吗?也许 PySide 中有一些错误。 - Avaris
好的,我在Windows 7上安装了所有必要的软件,但仍然出现同样的问题。我已经安装了Python 2.7、Eclipse、MinGw和PySide,但仍无法将svg格式显示为图像格式,但可以显示ico、jpeg、gif等格式。我的环境变量路径中包含以下内容:C:\Python27\Lib\site-packages\PySide;C:\Python27\Lib\site-packages; - user1301848
显示剩余9条评论
1个回答

12
为了使用SVG图片,你需要导入QtSvg和QtXml,并确保插件目录被正确地导入。
下面的代码对我来说可以成功实现这一点:
import os
import PySide
from PySide import QtSvg, QtXml
# You need to have created your QApplication already...
qApp = QApplication.instance()
for plugins_dir in [os.path.join(p, "plugins") for p in PySide.__path__]:
    qApp.addLibraryPath(plugins_dir)

这是在一个虚拟环境中,我运行了 easy_install PySide - David Fraser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接