Qt qrc 资源文件 - 无法加载图标
Posted
技术标签:
【中文标题】Qt qrc 资源文件 - 无法加载图标【英文标题】:Qt qrc resource file - can't load icon 【发布时间】:2012-12-27 17:05:31 【问题描述】:我有一个 Qt5 桌面项目,我使用 Qt Creator 编辑器添加了一个“resource.qrc”文件,该编辑器在项目的 .pro 文件中创建了以下行:
RESOURCES = resource.qrc
我放了一个空白前缀和一个 png 文件 (14x14),我尝试像这样使用它:
QPixmap pixmap = QPixmap ("://my_image.png");
ui->combobox->addItem(QIcon(pixmap), "itemname");
问题是:图标不会出现!
以下作品:
QPixmap pixmap(14,14);
pixmap.fill(QColor("red"));
ui->combobox->addItem(QIcon(pixmap), "itemname");
所以问题一定出在资源嵌入过程中..我注意到生成的“exe”里面没有资源部分...我没有静态链接的外部库,所以我不认为我需要 Q_INIT_RESOURCE(resource) 宏(它给了我未定义的外部)
更新: 我在这里发布我的 qrc 文件:
<RCC>
<qresource prefix="/">
<file>my_image.png</file>
</qresource>
</RCC>
这很简单,我不明白为什么在运行时图标不显示
【问题讨论】:
Qt 资源没有使用 Windows exe 资源机制,所以它们不出现在那里是正常的。请发布您的 resource.qrc 文件。另外,请注意,您可以直接在 QIcon 中加载图像。无需通过 QPixmap。尝试简单:ui->combobox->addItem(QIcon(":/my_image.png"), "itemname");
【参考方案1】:
我最近遇到了同样的问题,我的资源字符串格式错误。如果您使用的是当前版本的 Qt Creator,您可以打开您的 .qrc 文件进行编辑,然后右键单击您要处理的资源(在本例中为图像),然后单击“将资源路径复制到剪贴板”。瞧,你每次都有正确的资源字符串。
Qt Creator 很棒。
希望这会有所帮助!
【讨论】:
感谢Copy Resource Path...
这表明我复制了文件夹:/dictionaries/dictionaries/en.dic
【参考方案2】:
@Nikos C. 为您提供了有用的建议,但我认为您的主要问题是您没有使用正确的资源链接。
在您的代码中,您有:
QPixmap pixmap = QPixmap ("://my_image.png");
但是,根据documentation,应该是
QPixmap pixmap = QPixmap (":/my_image.png");
或者您可以为您的资源指定别名,然后使用这些别名。
【讨论】:
【参考方案3】:问题解决是使用 rcc.exe C:\root\QT>c:\root\QT\4.7.4\bin\rcc.exe Headless.qrc -o qtresources.cpp 在编译期间,路径中应该有图像。 创建 qtresources.cpp 文件,将此文件包含在 makefile 或项目中。您应该可以看到图像。
【讨论】:
以上是关于Qt qrc 资源文件 - 无法加载图标的主要内容,如果未能解决你的问题,请参考以下文章