4

我正在使用 Qt Designer 4.8.4,并且在 QMainWindow 资源文件中包含两个文件:一个 .ico 文件和一个 .gif 文件。从代码加载时使用:

QPixmap p;
p.load(":/MyApp/media/logo.gif");  // does work
p.load(":/MyApp/media/logo.ico");  // does not work

gif 文件有效,但 ico 文件无效。有什么理由吗?我使用 ico 文件作为窗口图标,运行应用程序时它没有显示。

而且,是的,我成功地编译了 qrc 文件,因为GIF 文件正在工作

干杯,

4

5 回答 5

4

*.ico 不受支持。

默认情况下,Qt 支持以下格式:

格式 说明 Qt 的支持

BMP Windows 位图 读/写

GIF 图形交换格式(可选) 阅读

JPG 联合摄影专家组 读/写

JPEG 联合图像专家组 读/写

PNG 便携式网络图形 读/写

PBM 便携式位图读取

PGM 便携式灰度图读取

PPM 便携式像素图读/写

TIFF 标记图像文件格式 读/写

XBM X11 位图 读/写

XPM X11 Pixmap 读/写

于 2013-01-22T10:48:27.387 回答
3

因为 QPixmap 不能简单地读取 .ico 文件,如果您想了解更多关于支持的格式的信息,请查看文档QPixmap

于 2013-01-22T10:46:55.610 回答
3

此处接受的答案不正确,或者如评论中所述,至少具有误导性。Qt 从 4.4 版开始就带有一个用于处理 ICO 格式的插件。这是来自同一时代的类似问题。

对于部署,需要将plugins/imageformats/[lib]qico.[dll|so]用于构建的 Qt 安装中的文件复制到其可执行文件的目录中。将其放在子文件夹中,如下所示:<your_executable>/imageformats/qico.dll. 如果测试调试d版本,则需要 lib 的后缀版本 ( qicod.dll)。

这个较新的问题已被标记为此重复,所以现在有 2 个问题指向错误的答案。这就是为什么我基本上在这里重复我的帖子。)

于 2019-04-05T15:31:31.803 回答
2

您可以将其格式转换为 Qt 支持的格式。

于 2013-01-23T15:36:37.140 回答
1

根据您对已经选择的答案的跟进猜测,您可能希望将该 ICO 作为应用程序窗口图标。这是可能的,也可能是 Qt Designer 能够显示它的原因(试图猜测您的意图)。但是,拥有它并不涉及任何 QPixmap 编码,它纯粹是配置事务。此处描述(是的,#worksforme):

http://doc.qt.digia.com/qt/appicon.html

于 2013-01-22T13:18:15.543 回答