【发布时间】:2012-05-24 14:41:57
【问题描述】:
我试图让QLabel() 显示来自文件的pixmap JPG 图像(它不能在资源文件中,因为它是从网络下载的),但我在加载它时遇到问题。代码相当简单:
label = QLabel()
label.setPixmap(QPixmap("image.jpg"))
它适用于PNG 文件,但不适用于JPG 文件。我用谷歌搜索了很多,发现我需要将"imageformats" 文件夹放在我的脚本所在的同一个文件夹中。然而,即使在这样做之后(是的,qjpeg4.dll 和其他人都在那里),它仍然不起作用。我也试过做
path = r"C:\Users\Deusdies\Documents\Work\myapp\imageformats"
app.addLibraryPath(path)
但这也无济于事。
同样,它可以正常加载 PNGs,但不会加载 JPGs。我之前也注意到它也不会加载ICO,但我认为这是一个不相关的问题 - 但现在看起来不是这样。
值得注意的是,此时应用程序并未转换为.exe - 它通过PowerShell 运行通过python.exe 解释器。
我的开发环境是 Windows 7 x64,PySide 1.1.0
我该如何解决这个问题?
【问题讨论】:
-
什么Qt版本?要查看可用的图像格式:
list = QImageReader.supportedImageFormats ()然后print()这个列表。 -
您是否完全确定该图像不是其他格式,只有
.jpg扩展名? -
@dschulz:我得到了这个:[PySide.QtCore.QByteArray('bmp'), PySide.QtCore.QByteArray('pbm'), PySide.QtCore.QByteArray('pgm'), PySide .QtCore.QByteArray('png'), PySide.QtCore.QByteArray('ppm'), PySide.QtCore.QByteArray('xbm'), PySide.QtCore.QByteArray('xpm')] 显然缺少 JPG。知道如何添加吗?也是的,我 100% 确定它是 JPG。
-
我隐约记得一位 Qt 开发人员的一篇博客文章,其中提到了一个导致此类问题的特定图像格式插件。但我认为它很久以前就已经修复了。你的软件更新了吗?
-
这是我正在谈论的博客文章:Qt Image Decoders Stepping on Each Others