首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用QPixmap加载图像

使用QPixmap加载图像
EN

Stack Overflow用户
提问于 2011-05-11 00:36:07
回答 3查看 9.2K关注 0票数 4

我有一个图像文件,名为C:/44637landscapes-2007.jpg

我想使用PySide使用QPixmap加载此文件

我尝试如下所示。

代码语言:javascript
复制
pixmap = QPixmap('C:/44637landscapes-2007.jpg')

但是文档上写的就像QPixmap(':/xxxxxx.jpeg')':'是什么意思?

如何在'C:\'中加载图像?

编辑:问题出在试图加载"JPEG"。它能够加载"PNG",没有任何问题。那么,我还需要做什么来加载"JPEG"呢?

谢谢Jijoy

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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看起来像这样:

代码语言:javascript
复制
[Paths]
Prefix = C:/Python27/lib/site-packages/PySide
Binaries = .
Plugins = plugins
Translation = translation

C:/Python27/lib/site-packages/PySide是我的系统PATH变量的一部分,并且是任何PyQt (或其他Qt)目录的前面的

票数 3
EN

Stack Overflow用户

发布于 2011-05-12 05:19:33

Qt对图像做了一些有点奇怪的事情。如果你只使用pngs,你永远不会有问题。对其他图像格式的处理稍有不同。

如果您查看Qt目录(其中包含所有的二进制文件和源代码),您会发现一个名为:plugins\imageformats的目录

在该目录中有大量dlls (或.so),分别对应于Qt支持的每种图像格式。在您的情况下,我假设您感兴趣的是qjpeg4.dll

现在,当您运行您的应用程序并尝试使用jpeg时,Qt将尝试加载此插件,但如果它找不到它,则您的图像将不会显示。

我们在ico文件上也有类似的问题。它在我们的开发环境中工作,因为Qt文件夹在我们的PATH,中,因此它神奇地找到了这个插件。然而,当我们发布我们的软件时,我们只分发我们需要的那些dlls,因此它不起作用。

经过大量调查后,我们做了以下工作:

  • 我们的应用程序位于bin/目录中。这是可执行文件和所有Qt all的存放位置。QtCore4.dllQtGui4.dll等...
  • 在bin目录下,我们创建了一个名为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.中加载您的图像

票数 5
EN

Stack Overflow用户

发布于 2011-05-11 00:59:50

您可以通过提供文件的路径名来构造QPixMap实例。当你尝试你的代码时,你得到的错误是什么?将您的代码更改为类似于:

代码语言:javascript
复制
pixmap = QPixMap(r'C:\filename.jpeg')

你所指的文档就是你加载Qt资源的方式。可以将应用程序所需的图像转换为Qt资源,以便以独立于平台的方式加载它。有关执行此操作的步骤,请参阅The Qt Resource System 文档。

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

https://stackoverflow.com/questions/5953352

复制
相关文章

相似问题

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