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

MFC Discussion :

[MFC-QT]message map dynamique


Sujet :

MFC

  1. #1
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut [MFC-QT]message map dynamique
    Pour les aficionados de QT j’ai posté dans le post it de la Faq un sujet qui devrait vous faire sourire…
    http://www.developpez.net/forums/vie...717428#1717428

    Vos avis ?

    J’ai pas réussi a me passer du chemin de la classe comme dans l’exemple QT ,
    D’ailleurs comment ils font (j’ai pas les codes sources) ?

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Qt ils trichent : ils utilisent un préprocesseur. Ce n'est pas l'adresse de la fonction que tu passes, mais... son nom! SLOT() et SIGNAL() sont définis comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define SLOT(a)		"1"#a
    #define SIGNAL(a)	"2"#a
    et connect comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        static bool  connect( const QObject *sender, const char *signal,
    			  const QObject *receiver, const char *member );
    connect() est une fonction static membre de QObject.
    Tout le truc est fait lors de la déclaration du slot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class MaClasse : public QObject
    {
    Q_OBJECT
    public slots:    
    };
    le slots après le public n'est pas là pour faire joli. Tout ce qui se trouve après va être traité par le préprocesseur moc qui va générer ce qu'il faut pour associer chacune de ces déclarations à une chaine de caractères. Le connect fait ensuite le lien entre ce que tu lui demande et ce que l'objet contient. S'il ne trouve pas, il t'affiche un message sur stderr.
    C'est pour ça que contrairement à l'approche compilée style MFC où si tu supprimes la fonction membre le message map râle à la compilation car il sait pas de quoi tu parles, avec Qt si tu lui files un slot qui n'existe pas impossible de le savoir à la compilation...

    Y'a eu un article intéressant sur ce mécanisme signaux/slots dans un Linux Mag je crois. Y'a boost qui a sa lib :
    http://www.boost.org/doc/html/signals.html
    et dans un style + MFC, tu peux t'inspirer de ce que fait wxWidgets:
    http://www.wxwidgets.org/manuals/2.4.2/wx131.htm#wxevthandlerconnect

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    merci pour ces liens,
    Note pour :
    Ce n'est pas l'adresse de la fonction que tu passes, mais... son nom!
    le pointeur contient bien l'adresse de la fonction dans la classe.


  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par farscape
    le pointeur contient bien l'adresse de la fonction dans la classe.
    pas compris

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut Re: [MFC-QT]message map dynamique
    Citation Envoyé par farscape
    Pour les aficionados de QT j’ai posté dans le post it de la Faq un sujet qui devrait vous faire sourire…
    Je souris

Discussions similaires

  1. [XHTML] Générer une map dynamiquement
    Par Gazadonf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 19/06/2008, 23h35
  2. Message map avec CObject
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 18/03/2008, 10h53
  3. MFC creation de control dynamique et police
    Par themadmax dans le forum Windows
    Réponses: 2
    Dernier message: 13/06/2007, 17h53
  4. [MFC] Vider message réseau
    Par pitch21 dans le forum MFC
    Réponses: 7
    Dernier message: 10/08/2005, 17h57
  5. [MFC VC.NET] Chargement dynamique de DLL
    Par vanitom dans le forum MFC
    Réponses: 3
    Dernier message: 26/01/2005, 13h56

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