2010-04-25 3 views
1

J'ai un fichier png sur le disque au moment de la compilation. Je voudrais l'inclure dans l'exécutable compilé. Comment définir une telle icône dans Qt?Comment définir une icône dans QT avec une image prédéfinie de compilation?

+0

Voulez-vous dire sans charger les données d'icône à partir des ressources? –

+0

Je voudrais inclure la ressource dans l'exécutable, afin qu'elle ne soit pas chargée lors de l'exécution. Est-ce possible? – Regof

Répondre

9

Vous devez essentiellement utiliser le système de ressources Qt.
Extraire Ressources compiléeshere.

Disons que ce ce votre fichier de ressources

<!DOCTYPE RCC><RCC version="1.0"> 
<qresource> 
    <file>images/copy.png</file> 
    <file>images/cut.png</file> 
    <file>images/paste.png</file> 
</qresource> 
</RCC> 

Dans votre source, vous pouvez maintenant créer QIcons en faisant référence à des images de la ressource

QIcon(":/images/cut.png") 

Ne pas oublier de référencer le fichier de ressources dans votre .pro

RESOURCES = application.qrc 

This example utilise des images dans le fichier Ressource pour les icônes

+0

parfait, et puis - hoe est-ce que je définis l'icône en utilisant cette ressource compilée? – Regof

6

Comme alternative au système de ressources de Qt, vous pouvez utiliser (votre utilitaire de conversion d'image préférée) pour convertir le fichier .png au format .xpm, puis ajoutez ces lignes à votre fichier .cpp:

#include "my_converted_image.xpm" 
[...] 
QPixmap myPixmap((const char **) my_converted_image_xpm); 

... où my_converted_image_xpm est le nom du tableau de caractères déclaré en haut du fichier .xpm. Cela fonctionne parce que le format d'image .xpm est en fait le code source C déclarant un tableau de caractères qui est le bitmap qui QPixmap sait comment analyser, par exemple:

/* XPM */ 
static const char * const my_converted_image_xpm[] = { 
"16 16 65 1", 
"  c None", 
".  C#0F0F04", 
[...] 
"    "}; 
0

Si votre utilisation de Qt-Creator, il y a un éditeur de ressources disponible pour vous d'utiliser. Créez simplement un nouveau fichier de ressources, ajoutez un préfixe et ajoutez des fichiers. Qt-Creator l'ajoutera automatiquement dans le fichier de projet. Après cela, sélectionnez votre image à partir de votre ressource et votre bon à faire

Questions connexes