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

Qt Discussion :

Widget en plugin (DLL)


Sujet :

Qt

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 240
    Points : 132
    Points
    132
    Par défaut Widget en plugin (DLL)
    Bonjour,
    J'ai une fenêtre QMainWindow avec une mdi.
    Je souhaiterais créé des QWidget que j'ajouterai dans mon mdi grâce à des plugins avec des dlls.

    Comment dois-je m'y prendre ?
    Merci d'avance

    Config: Qt 4.5.0 sous Visual studio

  2. #2
    Membre averti Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 344
    Points
    344
    Par défaut
    est-ce que ta question c'est comment créer des plugins pour Qt Designer pour construire ton interface avec ? si c'est cela, je suis en train de réfléchir a la rédaction d'un tutoriel pour cela.
    Si tu te sers de l'intégration a visual studio, y'a un wizard pour cela !
    Sinon, en attendant, regarde un peu la doc ici :
    http://qt.developpez.com/doc/4.3/des...mwidgetplugin/

    si tu galeres, je t'enverrai un de mes plugins pour que tu regardes le code (je dis pas que c'est le mieux, mais ca marche).

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 240
    Points : 132
    Points
    132
    Par défaut
    Merci pour ta réponse.
    Mais ce n'est pas un plugin pour QtDesigne mais un plugin pour une application perso que je souhaite réaliser.
    Chaque plugin contiendra une fenêtre que l'on pourra afficher X fois (X appartient [0;+infini[) dans un mdi.

    J'ai trouvé 2 liens que je vais creuser :
    1. http://qt.developpez.com/tutoriels/plug-ins/
    2. http://qt.developpez.com/doc/4.5/plugins-howto/


    Si tu as d'autres informations
    Ton code m'intéresse stp

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 240
    Points : 132
    Points
    132
    Par défaut
    Mais donc dans visual studio,
    Pour chaque plugin je crée un nouveau projet Qt Library mais je l'ajoute à la solution ou je crée une nouvelle solution ?

    Merci d'avance

  6. #6
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 240
    Points : 132
    Points
    132
    Par défaut
    Bonjour,
    Donc j'ai créé une nouvelle solution. Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #ifndef CAESAR_H
    #define CAESAR_H
    #include <QtGui>
    #include "../algorithm_interface.h"
     
    class Caesar : public QObject, public Algorithm_interface
    {
    	public:
    		Caesar();
    		~Caesar();
     
    		QString getName() { return tr( "Caesar cypher" ); };
    		QList< QString > getDocumentation() { QList< QString > documentation; return documentation; }
     
    	private:
    		//
    };
     
    #endif // CAESAR_H
    Je le compile, j'obtiens une dll, je la place dans le dossier de mon executable pour qu'il la charge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    MainWindow::MainWindow() : QMainWindow()
    {
    ...
    	// Plugins
    	loadPlugins();
    ...
    }
     
    void MainWindow::loadPlugins()
    {
    	QDir pluginsDir = QDir( qApp->applicationDirPath() );
        //pluginsDir.cd( ".." );
        foreach( QString fileName, pluginsDir.entryList( QDir::Files ) )
    	{
    		QPluginLoader loader( pluginsDir.absoluteFilePath( fileName ) );
            QObject *plugin = loader.instance();
            if ( plugin )
    		{
    			Algorithm_interface *algorithm = qobject_cast< Algorithm_interface* >( plugin );
                if ( algorithm )
    				//m_operationList;
    				QMessageBox::information( this, "", algorithm->getName() );
            }
        }
    }
    Mais il ne charge pas le plugin !
    Comment dois-je m'y prendre ?

    Merci d'avance

  7. #7
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 240
    Points : 132
    Points
    132
    Par défaut
    J'ai continué mes essais mais je n'ai toujours pas réussi ...
    Quelqu'un pourrait m'aider ??

    Merci d'avance

  8. #8
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Ta classe Caesar n'utilise pas la macro Q_INTERFACES, et si tu as un fichier cpp, as-tu bien mis Q_EXPORT_PLUGIN2 ? Si tu n'en as pas, il est nécessaire.

    Il serait préférable que tu relises l'exemple indiqué par Yan parce que j'ai pas l'impression que tu l'ais vraiment compris.

  9. #9
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 240
    Points : 132
    Points
    132
    Par défaut
    C'est bon ça à l'air de marcher. Merci beaucoup

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

Discussions similaires

  1. Plugins DLL pour une base de données atypique (oledb)
    Par o.ingo dans le forum Bases de données
    Réponses: 0
    Dernier message: 17/07/2014, 08h31
  2. Plugin dll (intégration codec)
    Par TheHoax dans le forum Débuter
    Réponses: 4
    Dernier message: 28/12/2012, 12h56
  3. Découper un projet en plugins dll
    Par Ange_blond dans le forum Bibliothèques
    Réponses: 9
    Dernier message: 25/05/2009, 11h51
  4. Réponses: 1
    Dernier message: 15/01/2007, 10h45
  5. Exporter des widgets depuis une DLL
    Par zebiloute dans le forum wxWidgets
    Réponses: 5
    Dernier message: 31/07/2006, 08h14

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