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