FAQ Qt
FAQ QtConsultez toutes les FAQ
Nombre d'auteurs : 26, nombre de questions : 298, dernière mise à jour : 15 juin 2021
Les ressources sont des fichiers que l'on peut insérer dans un exécutable. Ils seront disponibles depuis l'exécutable, sans devoir être distribués avec l'exécutable.
Il y a deux manières d'insérer les ressources : soit directement dans l'exécutable, soit dans un fichier de ressources binaire. Dans les deux cas, un fichier QRC doit être utilisé, et compilé avec RCC.
Voici un exemple de fichier QRC.
<!DOCTYPE RCC>
<RCC
version
=
"1.0"
>
<qresource>
<file>
images/copy.png</file>
<file>
images/cut.png</file>
</qresource>
</RCC>
Vous pouvez intégrer ces fichiers dans l'exécutable : il suffit d'indiquer, dans votre fichier de projet, le fichier de ressources, et qmake s'occupe, encore une fois, de tout.
RESOURCES = application.qrc
Vous pouvez facilement accéder aux fichiers mentionnés dans le QRC :
cutAct =
new
QAction
(QIcon
(":/images/cut.png"
), tr("Cu&t"
), this
);
Cette méthode ne fonctionne pas toujours. Voici un exemple nécessitant d'utiliser une méthode alternative.
QString
text =
"<h1 style='background: url(qrc:/Images/Fond.png) repeat-x;'>Ceci est un titre !</h1>"
;
QWebView
*
navigator =
new
QWebView
(this
);
navigator->
setHtml(text);
Vous pouvez aussi compiler le fichier de ressources pour avoir un fichier de ressources binaire.
rcc -binary myresource.qrc -o myresource.rcc
Avant de pouvoir utiliser le fichier créé dans votre application, il faudra l'enregistrer.
QResource
::
registerResource("/path/to/myresource.rcc"
);
Avec cette ligne, vous pourrez utiliser les ressources contenues dans le fichier binaire comme n'importe quelle ressource.
Les ressources peuvent être facilement localisées.
<qresource>
<file>
cut.jpg</file>
</qresource>
<qresource
lang
=
"fr"
>
<file
alias
=
"cut.jpg"
>
cut_fr.jpg</file>
</qresource>
Dans le cas où la langue utilisée est le français, les références à :/cut.jpg seront redirigées vers :/cut_fr.jpg.
Il n'est pas possible de modifier une ressource d'un programme pendant que ce dernier est en cours d'exécution. En effet, le système de ressources n'est pas prévu pour cela, seule la lecture est possible. Cette limitation est sensée, dans la mesure où un exécutable ne peut pas être modifié durant son exécution.