我有一个图像文件,如C:/44637landscapes-2007.jpg
我想QPixmap
使用 PySide加载此文件
我尝试如下。
pixmap = QPixmap('C:/44637landscapes-2007.jpg')
Run Code Online (Sandbox Code Playgroud)
但文档说像QPixmap(':/xxxxxx.jpeg')
. 是什么':'
意思?
如何加载图像'C:\'
?
编辑:问题在于尝试加载"JPEG"
。它能够加载"PNG"
,没有任何问题。那么我还需要做什么来加载"JPEG"
?
谢谢吉乔伊
Qt 对图像做了一些奇怪的事情。如果你只使用 png,你永远不会有问题。其他图像格式的处理方式略有不同。
如果您查看 Qt 目录(所有二进制文件和源代码都在其中),您会发现一个名为: plugins\imageformats
在该目录中,Qt 支持的每种图像格式都有大量dlls
(或.so
)一个。就你而言,我认为你感兴趣的是qjpeg4.dll
现在,当您运行应用程序并尝试使用 a 时jpeg
,Qt 将尝试加载此插件,但如果找不到它,则您的图像将不会显示。
我们对 ico 文件也有类似的问题。它在我们的开发环境中工作,因为 Qt 文件夹在我们的开发环境中PATH,
,因此它神奇地找到了这个插件。然而,当我们发布我们的软件时,我们只会分发我们需要的那些 dll,因此它不起作用。
经过大量调查,这就是我们所做的:
我们的应用程序位于 bin/ 目录中。这是放置 exe 和所有 Qt dll 的位置。 QtCore4.dll
等等QtGui4.dll
...
在bin目录下我们创建一个子目录名为'imageformats'
Putqjpeg4.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
.
归档时间: |
|
查看次数: |
10925 次 |
最近记录: |