Qt qrc资源文件 - 无法加载图标

时间:2012-12-27 17:05:32

标签: c++ qt icons qt5 qicon

我有一个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(资源)宏(它给我未定义的外部)

更新: 我在这里发布我的qrc文件:

<RCC>
    <qresource prefix="/">
        <file>my_image.png</file>
    </qresource>
</RCC>

这很简单,我不明白为什么在运行时图标没有显示

3 个答案:

答案 0 :(得分:23)

我最近遇到了同样的问题,我的资源字符串格式不正确。如果您使用的是当前版本的Qt Creator,则可以打开.qrc文件进行编辑,然后右键单击要尝试解决的资源(在本例中为图像),然后单击“将资源路径复制到剪贴板”。瞧,每次都有正确的资源字符串。

Qt Creator太棒了。

希望这有帮助!

答案 1 :(得分:12)

@Nikos C.为您提供了有用的建议,但我认为您的主要问题是您没有使用正确的资源链接。

在您的代码中,您有:

QPixmap pixmap = QPixmap ("://my_image.png");

但是,根据documentation,它应该是

QPixmap pixmap = QPixmap (":/my_image.png");

或者您可以为您的资源提供别名,并使用它们。

答案 2 :(得分:0)

问题解决是使用rcc.exe C:\ root \ QT&gt; c:\ root \ QT \ 4.7.4 \ bin \ rcc.exe Headless.qrc -o qtresources.cpp 在编译期间,您应该在路径中有图像。 创建qtresources.cpp文件,在makefile或project中包含此文件。你应该能够看到图像。