IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Discussion :

Petit problème de création de plug-in QtDesigner sous VC2008 [Qt Designer]


Sujet :

Outils

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 477
    Par défaut Petit problème de création de plug-in QtDesigner sous VC2008
    Bonjour,

    J'essaye d'intégrer un widget personnalisé sous forme de plug-in dans QtDesigner / Visual Studio 2008 et j'ai un petit soucis, alors que j'ai réussi la même opération sous QtCreator.

    Pour cela j'utilise la procédure standard ( enfin je crois ) i.e. File>new>project/solution>Qt Designer plugin, et je personnalise mon widget à ma convenance. Mais à la compilation, j'obtiens le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LINK : fatal error LNK1181: cannot open input file 'QtDesignerd.lib'
    ou son équivalent en release avec 'QtDesigner.lib'.

    Et impossible de les trouver sur mon HD. Je réitère mes essais avec cette fois le projet de base ouvert à la création d'un widget et j'obtiens le même problème.

    Est ce une erreur lors de la compilation de Qt pour VC9 ( option particulière non spécifiée )? ou un problème dans les options de mon projet ?

    J'ai suivit un peu l'exemple donné ici , mais il semblerait que nos soucis soient différents.

    Si vous avez une idée...

  2. #2
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 477
    Par défaut
    Hum,

    Il semblerait que finalement QtDesigner.lib ne soit pas nécessaire à la compilation. Je m'interroge malgré tout sur le fait qu'il soit automatiquement ajouté dans les dépendances additionnelles alors qu'on trouve presque aucune info sur le net à son sujet. Enfin bref, ça compile.

    Néanmoins j'ai un autre soucis : même si j'ajoute le .lib, le .dll et le .exp dans le répertoire plug-in de QtDesigner, il ne les prend pas en compte, qu'ils soient compilés en release ou en debug. Il y a t-il quelque chose que j'aurai omis de faire ?

    EDIT : selon la doc de Qt, même dans sa dernière version on peut lire ceci :

    Note that if you want the plugins to appear in a Visual Studio integration, the plugins must be built in release mode and their libraries must be copied into the plugin directory in the install path of the integration (for an example, see C:/program files/trolltech as/visual studio integration/plugins).
    Or Qt appartient maintenant à Nokia, donc le répertoire est forcément mauvais, et dans le repertoire de VS-intégration ( chez moi = C:\Program Files\Nokia\Qt4VSAddin) aucune trace d'un quelconque repertoire plugin.
    J'ai donc choisit de mettre les fichiers dans C:\Qt\4.6.1-vc\plugins\designer ou on peut trouver par exemple worldtimeclockplugin.dll mais QtDesigner ne les prends pas en compte ( alors qu'il me supprime bien Worldclock si je déplace le fichier worldtimeclockplugin.dll.. ).
    Ça sous-entend que mes fichiers de plugin ne sont pas crées convenablement, mais ou est l'erreur ?

  3. #3
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 477
    Par défaut
    Il semblerait que j'ai réussi à m'en sortir... je poste un résumé de la procédure afin qu'elle puisse servir à d'autres :



    Intégration d’un widget personnalisé dans QtDesigner

    Pré-requis : Qt 4.6.1 installé et compilé pour Visual C++ 2008
    Le répertoire d'installation de Qt utilisé ici est C:\Qt\4.6.1-vc\

    1) création du plug-in

    File => new Project… => Qt4 Designer Plugin.
    Entrez un nom. Sélectionnez les modules nécessaires, puis Finish.

    VS crée alors 4 fichiers : les fichiers propres au widget ainsi que deux autre fichiers pour la création du plug-in. On peut alors personnaliser le widget à sa convenance.


    2) options de compilation

    QtDesigner ne supporte que les plug-ins compilés en release, on doit donc changer la configuration active en conséquence.

    Pour une raison inconnue, une dépendance additionnelle non nécessaire et introuvable de QtDesigner.lib (QtDesignerd.lib en mode debug) est ajoutée au projet. Il faut donc la retirer dans :
    Project => Properties => Linker => Input => Additional Dependencies.

    Pour que le plugin soit directement intégré dans QtDesigner, on peut l’installer directement dans le répertoire des plugins de QtDesigner.
    Project => Properties => General => Output Directory = > < Browse… >
    Et sélectionner C:\Qt\4.6.1-vc\plugins\designer.


    3) autres indications

    - Un warning peut-être évité en ajoutant un espace entre * et /*core*/ dans la fonction initialise() du plug-in.

    - Le widget est ajouté en bas de la liste « Boîte de widget ».

    - Dans certains cas, la macro QDESIGNER_WIDGET_EXPORT doit être ajoutée dans la déclaration de la classe du widget :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class QDESIGNER_WIDGET_EXPORT QtTestSlider : public QSlider

    4) Utilisation dans un projet VS 2008

    Si le widget personnalisé est associé à un bitmap, l’image devra être ajoutée aux ressources des projets qui utilisent celui-ci. Le fichier .h correspondant au widget personnalisé doit être placé dans le répertoire des projets qui l’utilisent, et le fichier .lib doit être ajouté aux dépendances additionnelles :
    Project => Properties => Linker => Input => Additional Dependencies.

    On doit également ajouter le répertoire ou se trouvent les plug-ins :
    Project => Properties => Linker =>General=>Additional Library Directories
    Ajouter: $(QTDIR)\plugins\designer

    De meme la dll du plug-in doit être visible du projet : le plus simple est d’ajouter %QTDIR%\plugins\Designer à la variable d’environnement système PATH.

    5) Liens utiles

    http://qt.developpez.com/doc/latest/...mwidgetplugin/
    http://qt.developpez.com/doc/latest/...ustom-widgets/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de création d'un web service sous netbeans
    Par ebenmous dans le forum Services Web
    Réponses: 0
    Dernier message: 12/05/2011, 12h03
  2. Petit problème avec la création d'un job
    Par Borni Gloim dans le forum SQL
    Réponses: 2
    Dernier message: 10/01/2008, 21h28
  3. Petit problème de création de fichier
    Par cajie dans le forum Ada
    Réponses: 2
    Dernier message: 29/12/2006, 11h32
  4. Problème de création de fenêtre
    Par tomateauketchup dans le forum DirectX
    Réponses: 1
    Dernier message: 08/06/2003, 19h42
  5. [Rave Report] problème de création dynamique
    Par Nivux dans le forum Rave
    Réponses: 2
    Dernier message: 24/05/2003, 00h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo