我使用的是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文件正常工作。
干杯,
* .ico不受支持。
默认情况下,Qt支持以下格式:
格式说明Qt的支持
BMP Windows位图读/写
GIF图形交换格式(可选)读取
JPG联合图像专家组读/写
JPEG联合图像专家组读/写
PNG便携式网络图形读/写
PBM便携式位图读取
PGM Portable Graymap Read
PPM便携式Pixmap读/写
TIFF标记图像文件格式读/写
XBM X11位图读/写
XPM X11 Pixmap读/写
因为QPixmap不能简单地读取.ico文件,如果你想了解更多关于支持的格式,请查看文档QPixmap
您可以将其格式转换为Qt支持的格式。
根据您对已经选择的答案的跟进进行猜测,您可能希望将该ICO作为appwindow图标。这是可能的,也可能是Qt Designer能够显示它(试图猜测你的意图)的原因。但是,拥有它不涉及任何QPixmap编码,它纯粹是配置事务。这里描述(是的,#worksforme):
这里接受的答案是不正确的,或者在评论中提到,至少是误导性的。 Qt附带了一个用于处理ICO格式的插件,从4.4版开始。这是来自同一时代的similar question。
对于部署,需要将用于构建的Qt安装中的plugins/imageformats/[lib]qico.[dll|so]
文件复制到其可执行文件目录中。把它放在一个子文件夹中,如下所示:<your_executable>/imageformats/qico.dll
。如果测试调试版本,则需要使用lib的d
后缀版本(qicod.dll
)。
(This newer question已被标记为此重复,所以现在2个问题指向错误的答案。这就是为什么我在这里重复我的帖子。)