2 votes

Définir l'icône de l'application

Je construis une application QML avec l'Ubuntu SDK. J'ai compris comment ajouter une icône d'application au fichier .desktop, mais je ne suis pas sûr d'où ajouter l'icône de la fenêtre elle-même. J'ai vu du code pour définir Applicaton.windowIcon avec C++, mais j'utilise seulement QML/JS. Comment puis-je ajouter mon icône à la configuration de l'application ?

4voto

Chaitanya Points 121

Définir l'icône dans votre fichier .desktop signifie l'ajouter à la configuration de votre application, donc je ne suis pas tout à fait sûr de ce que vous demandez. Tant que l'icône est installée avec tout le reste, vous devriez être prêt. Si vous installez via un package click, un nom de fichier relatif pour l'icône dans le fichier .desktop est tout ce dont vous avez besoin; sinon, vous voudrez peut-être utiliser un chemin absolu.

Si vous essayez de définir l'icône pour un programme qui n'est pas installé, vous pouvez ajouter le fichier desktop à ~/.local/share/applications/. De ce que je me souvienne, ce fichier ne sera pas détecté immédiatement, mais il sera chargé finalement. Déconnecter puis vous reconnecter forcera probablement un rafraîchissement.

Si vous voulez ajuster l'icône de manière programmable pendant que l'application s'exécute, je ne peux pas vous aider. Je serais surpris si vous pouviez le faire en QML pur, mais il pourrait être facile d'écrire un plugin C++.

0voto

Ahmad S Points 11

Tout d'abord, ajoutez l'icône à un fichier de ressources. Votre assets.qrc pourrait ressembler à ceci

         assets/icons/logo.png

Ensuite, vous devez définir l'icône de l'application du côté C++

#include 
#include 
#include 

int main(int argc, char** argv) {
    QGuiApplication app(argc, argv);
    QGuiApplication::setWindowIcon(QIcon(":/assets/logo.png"));
    // Ensuite, faites ce qui est nécessaire pour configurer le moteur QML
}

Cela devrait définir efficacement l'icône de l'application. Sur ma machine Ubuntu, l'icône de l'application apparaît à deux endroits lorsque l'application est en cours d'exécution

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X