我有一个Qt5桌面项目,并在Qt Creator编辑器中添加了一个“resource.qrc”文件,该文件在项目的.pro文件中创建了以下行:
RESOURCES = resource.qrc
我放了一个空白的前缀和一个png文件(14×14),我试图使用它:
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>
这很简单,我不明白为什么在运行时图标不显示
解决方法
@Nikos C.给你有用的建议,但我认为你的主要问题是你没有使用正确的资源链接.
在你的代码中,你有:
QPixmap pixmap = QPixmap ("://my_image.png");
但是,根据documentation,应该是
QPixmap pixmap = QPixmap (":/my_image.png");
或者您可以给您的资源别名,并使用它们.