14

我有一个 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>

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

4

3 回答 3

25

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

Qt Creator 很棒。

希望这可以帮助!

于 2013-09-10T23:23:24.340 回答
12

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

在您的代码中,您有:

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

但是,根据文档,它应该是

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

或者您可以为您的资源提供别名,然后使用这些别名。

于 2012-12-29T18:12:26.067 回答
0

问题已解决,使用 rcc.exe C:\root\QT>c:\root\QT\4.7.4\bin\rcc.exe Headless.qrc -o qtresources.cpp 在编译过程中,路径中应该有图像。创建 qtresources.cpp 文件,将此文件包含在 makefile 或项目中。您应该能够看到图像。

于 2016-09-30T15:05:12.630 回答