我有一个图像文件,名为C:/44637landscapes-2007.jpg
我想使用PySide使用QPixmap加载此文件
我尝试如下所示。
pixmap = QPixmap('C:/44637landscapes-2007.jpg')但是文档上写的就像QPixmap(':/xxxxxx.jpeg')。':'是什么意思?
如何在'C:\'中加载图像?
编辑:问题出在试图加载"JPEG"。它能够加载"PNG",没有任何问题。那么,我还需要做什么来加载"JPEG"呢?
谢谢Jijoy
发布于 2011-05-12 10:24:55
如果您尝试将Python代码构建为可执行文件,这将涵盖.ico文件的问题,但对于JPEG:PyQt/PySide - icon display,此过程是相同的
如果在已安装的解释器中运行时遇到问题,则可能是path变量设置不正确、qt.conf (在基本python目录中)已被删除/更改或在其应该位于的位置(<python dir>\Lib\site-packages\PySide\plugins\imageformats)没有qjpeg4.dll。
我的qt.conf看起来像这样:
[Paths]
Prefix = C:/Python27/lib/site-packages/PySide
Binaries = .
Plugins = plugins
Translation = translationC:/Python27/lib/site-packages/PySide是我的系统PATH变量的一部分,并且是任何PyQt (或其他Qt)目录的前面的。
发布于 2011-05-12 05:19:33
Qt对图像做了一些有点奇怪的事情。如果你只使用pngs,你永远不会有问题。对其他图像格式的处理稍有不同。
如果您查看Qt目录(其中包含所有的二进制文件和源代码),您会发现一个名为:plugins\imageformats的目录
在该目录中有大量dlls (或.so),分别对应于Qt支持的每种图像格式。在您的情况下,我假设您感兴趣的是qjpeg4.dll
现在,当您运行您的应用程序并尝试使用jpeg时,Qt将尝试加载此插件,但如果它找不到它,则您的图像将不会显示。
我们在ico文件上也有类似的问题。它在我们的开发环境中工作,因为Qt文件夹在我们的PATH,中,因此它神奇地找到了这个插件。然而,当我们发布我们的软件时,我们只分发我们需要的那些dlls,因此它不起作用。
经过大量调查后,我们做了以下工作:
QtCore4.dll和QtGui4.dll等...QtGui4.dll qjpeg4.dll的子目录,以及您可能需要的任何其他图像插件。QApplication _App(argc, argv);
// Find the path of your bin directory - whereever your exe resides.
QString _Path = _PathToBin + QString(QDir::separator()) + "imageformats");
// This line is providing a path to Qt telling it to look here for plugins QApplication::addLibraryPath(_Path);
// Initialize the main form
return _App.exec();
这应该确保Qt知道jpeg处理插件,并在UI.中加载您的图像
发布于 2011-05-11 00:59:50
您可以通过提供文件的路径名来构造QPixMap实例。当你尝试你的代码时,你得到的错误是什么?将您的代码更改为类似于:
pixmap = QPixMap(r'C:\filename.jpeg')你所指的文档就是你加载Qt资源的方式。可以将应用程序所需的图像转换为Qt资源,以便以独立于平台的方式加载它。有关执行此操作的步骤,请参阅The Qt Resource System 文档。
https://stackoverflow.com/questions/5953352
复制相似问题