QT fichier de ressources qrc - ne peut pas charger l'icône

j'ai un projet de bureau Qt5 et j'ai ajouté une "ressource.qrc" fichier avec Qt Creator éditeur qui a créé la ligne suivante dans le projet .pro fichier:

RESOURCES = resource.qrc

j'ai mis un vide préfixe et d'un fichier png (14x14) et j'ai essayé de l'utiliser comme ceci:

QPixmap pixmap = QPixmap ("://my_image.png");
ui->combobox->addItem(QIcon(pixmap), "itemname");

le problème est que l'icône n'apparaîtra pas!

Les ouvrages suivants:

QPixmap pixmap(14,14);
pixmap.fill(QColor("red"));
ui->combobox->addItem(QIcon(pixmap), "itemname");

le problème doit donc être dans le processus d'intégration des ressources.. J'ai remarqué que le "exe" n'a pas une section de la ressource à l'intérieur... Je n'ai pas de bibliothèques externes statiques liées, donc je ne pense pas que J'ai besoin de la macro q_init_resource(resource) (elle me donne externe non défini)

mise à jour: Je poste ici mon fichier qrc:

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

c'est assez simple et je ne comprends pas pourquoi à runtime les icônes n'apparaissent pas

12
demandé sur Johnny Pauling 2012-12-27 21:05:31

3 réponses

@Nikos C. Vous donne des conseils utiles, mais je pense que votre principal problème était que vous n'avez pas utilisé le bon lien vers la ressource.

Dans votre code, vous avez:

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

mais, selon l' documentation, il doit être

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

ou vous pouvez donner des alias à vos ressources, et les utiliser à la place.

11
répondu troyane 2014-07-08 11:56:59

j'ai eu ce même problème récemment, où j'ai mal formé la chaîne de ressource. Si vous utilisez une version actuelle de Qt Creator, vous pouvez ouvrir votre .qrc fichier pour le modifier, puis cliquez-droit sur la ressource (dans ce cas l'image) que vous essayez d'adresse, puis cliquez sur "Copier le Chemin d'accès aux Ressources dans le presse-papiers". Et voilà, vous avez la bonne chaîne de ressources à chaque fois.

Qt Creator est génial.

Espérons que cette aide!

22
répondu Terrabits 2017-08-01 15:17:46

le problème est résolu en utilisant rcc.EXE C:\root\QT>c:\root\QT\4.7.4\bin\rcc.exe Sans Tête.qrc-o qtressources.rpc Pendant la compilation, vous devriez avoir des images dans le chemin. Créer les qtressources.fichier cpp incluez ce fichier dans makefile ou project. Vous devriez en mesure de voir l'image.

0
répondu Raj 2016-09-30 15:05:12