Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.7.1 - Qt Creator : 4.2.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

[Qt3] [Win] Collection d'image ?

Bonjour,

je suis bloqué a un petit endroit et le livre ne répond pas vraiment a ma question. Page 96, je peux lire que QMake va créer un fichier de collection qui contiendra les images du projet en binaire.

Or lorsque je lance un executable, il ne m'affiche aucune image. Il faut que je mette le fichier jpg dans le meme repertoire pour qu'il s'affiche lorsque je lance le programme.

J'ai pourtant créer une collection a la main, ou par le QT Designer puis compilé sous Visual.
J'aurai oublié une étape ? :?:

Comment faire en sorte que ça marche sous QT Designer ? :)

Réponses

  • Il faut vérifier que le fichier qmake_image_collection.cpp est bien compilé et linké avec les autres fichiers objets du projet.
    Ensuite il est possible d'utiliser une image de la collection comme ceci :

    ouvrirAct = new QAction(tr("&Ouvrir..."), tr("Ctrl+O"), this);
    ouvrirAct->setIconSet(QPixmap::fromMimeSource("fileopen.png"));
    ouvrirAct->setStatusTip(tr(""));
    connect(ouvrirAct, SIGNAL(activated()), this, SLOT(slotOuvrir()));
    C'est ici l'image fileopen.png devant appartenir à la collection qui est utilisée comme icône du bouton de la barre d'outils.
  • je n'ai jamais vu ce fichier justement. Visual .NET le zapperai ?
    Je ne comprend pas trop pourquoi ça ne marche pas a vrai dire !

    Edit : je viens de tester en mode command, la nmake me créé bien le fichier qmake_image_collection.cpp; mais la compilation se termine pas : unresolved link.

    Si j'ouvre le projet sous visual .net, il compile; créé un .exe, mais quid du fichier image_collection.cpp

    J'ai trouvé une solution plutot bancale : il me suffit d'ajouter tous les fichiers cpp et h au fichier .pro sous QT Designer, d'aller sous visual .net et de faire Ouvrir .pro, et la il me créé bien le fichier qmake_image truc, mais c'est assez bizarre non ? Visual ne se remet pas en question qd le .pro change !
    Une idée qqu'un ? (j'espere que vous faire part de mes essais servira a d autres débutants !)
  • En fait le fichier projet (.pro) est spécifique à Qt et n'est pas pris en compte par Visual en dehors de la phase d'importation du projet. Donc si tu as modifié ton fichier projet, il faut l'importer de nouveau dans visual.
  • Ok donc après ajout d'une image dans la collection sous QTDesigner, penser a reimporter le .pro
    ça marche, merci bcp 8)
  • Bonjour,
    Je relance le sujet : j'ai le même probleme, mais ne comprend pas la solution proposée.

    Je travaille donc avec QtDesigner sous Linux. J'ai des icons importés dans ma collection d'images pour mes boutons, ils apparaissent bien dans le fichier .pro.

    petite arborescence du projet :
    /executable
    /interface/projet.pro
    /interface/mainForm.ui
    /interface/images/*

    Les icones n'apparaissent que lorsque les icones se trouvent à la racine du projet.

    Pouvez-vous expliquer étape par étape ce qu'il faut faire svp ?
    si le probleme vient de la, ou mettre le fichier qmake_image_collection.cpp et dans quel fichier l'inclure ?


    Merci de votre patience, je débute ^^

    a+,

    Laurent
  • Pour intégrer les images au sein d'une collection il faut :

    - Modifier le fichier projet (.pro) en ajoutant les images à intégrer :

    IMAGES = /interface/images/image1.png
    /interface/images/image2.png
    /interface/images/image3.png
    - Regénérer le fichier Makefile :
    qmake
    - Relancer la compilation :
    make
    Les images vont être intégrées dans un fichier qmake_image_collection.cpp. Ce fichier est pris en compte dans le Makefile et va être compilé et intégré à l'exécutable. Ensuite, pour accéder à une image, il faut utiliser :
    QPixmap::fromMimeSource("fichier.png")
    comme dans l'exemple :
    ouvrirAct->setIconSet(QPixmap::fromMimeSource("fileopen.png")); 
  • Merci.

    En fait, nous n'utilisons pas "qmake", mais un makefile paramètré pour notre projet.

    Nous allons mettre les images à la racine pour le moment.

    Bonne fin d'année ^^,

    Fu'
  • En fait, nous n'utilisons pas "qmake", mais un makefile paramètré pour notre projet.
    Le but des fichiers projets (.pro) est justement de créer facilement des fichiers Makefile adaptés à la plate-forme de développement. Il n'y a donc vraiment aucun intérêt à s'embêter avec un fichier Makefile mis à jour "à la main" alors que cela peut-être fait facilement à partir d'un fichier projet.
Connectez-vous ou Inscrivez-vous pour répondre.