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 :

Slot avec paramètre constant


Sujet :

Qt

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Points : 47
    Points
    47
    Par défaut Slot avec paramètre constant
    Bonjour,

    Ça fait déjà un moment que je cherche si on peut envoyer un paramètre constant au slot dans la méthode connect.

    En fait pour l'instant j'ai:

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    #define BOUTON_1 1
    #define BOUTON_2 2
    #define BOUTON_3 3
     
    Test::Test()
    {
        bouton_1 = new QPushButton("Bouton 1", this);
        connect(bouton_1, SIGNAL(clicked()), this, SLOT(affichage_bouton_1()));
        ....
     
        bouton_2 = new QPushButton("Bouton 2", this);
        connect(bouton_2, SIGNAL(clicked()), this, SLOT(affichage_bouton_2()));
        ....
     
        bouton_3 = new QPushButton("Bouton 3", this);
        connect(bouton_3, SIGNAL(clicked()), this, SLOT(affichage_bouton_3()));
        ....
    }
     
    void Test::affichage_bouton_1()
    {
        affichage(BOUTON_1);
    }
     
    void Test::affichage_bouton_2()
    {
        affichage(BOUTON_2);
    }
     
    void Test::affichage_bouton_3()
    {
        affichage(BOUTON_3);
    }
     
    void Test::affichage(int bouton)
    {
        ....
    }
    et je voudrais pouvoir faire quelque chose comme ça:


    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
     
    #define BOUTON_1 1
    #define BOUTON_2 2
    #define BOUTON_3 3
     
    Test::Test()
    {
        bouton_1 = new QPushButton("Bouton 1", this);
        connect(bouton_1, SIGNAL(clicked()), this, SLOT(affichage(BOUTON_1)));
        ....
     
        bouton_2 = new QPushButton("Bouton 2", this);
        connect(bouton_2, SIGNAL(clicked()), this, SLOT(affichage(BOUTON_2)));
        ....
     
        bouton_3 = new QPushButton("Bouton 3", this);
        connect(bouton_3, SIGNAL(clicked()), this, SLOT(affichage(BOUTON_3)));
        ....
    }
     
    void Test::affichage(int bouton)
    {
        ....
    }
    mais évidement ça ne marche pas parce que les paramètres du slot doivent être les meme que ceux du signal, mais je pense que vous voyez ce que je veux faire...

    D'après ce que j'ai vu sur le net à priori c'est pas possible, mais je poste quand même au cas où, ou aussi pour vous demander si vous avez une solution meilleure que la mienne pour faire quelque chose d'équivalent...

    Merci

  2. #2
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Regarde du côté de QSignalMapper. C'est fait exactement pour ça.

    Au passage, ça pourrait être intéressant que ce soit dans la faq Qt. J'ai l'impression quelle revient de temps en temps cette question.

  3. #3
    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
    si ce cas se limite à ça, tu peux aussi mettre tes QPushButton dans un QButtonGroup.

    En ajoutant tes boutons dedans, tu utilises la méthode QButtonGroup::addButton ( QAbstractButton * button, int id )

    puis, tu connectes le signal QButtonGroup::buttonClicked ( int id ) à ton slot et c'est parti.
    Lorsque vous avez trouvé solution à votre problème, n'oubliez pas de cliquer en bas de la page
    Besoin d'un photographe de mariage : http://www.triangle-photo.fr

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Points : 47
    Points
    47
    Par défaut
    Merci beaucoup à tous les deux.

    QButtonGroup est vraiment ce qu'il me faut pour ce que je voulais faire lorsque j'ai posté, mais je viens de me rendre compte que QSignalMapper va m'être bien utile ailleurs dans mon programme.

    Merci !!!

  5. #5
    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
    Par défaut
    Citation Envoyé par kinji1 Voir le message
    Au passage, ça pourrait être intéressant que ce soit dans la faq Qt. J'ai l'impression quelle revient de temps en temps cette question.
    effectivement, c'est une bonne remarque.
    Il ne faut pas hésité à nous envoyer un MP si quelqu'un pense qu'il fraudais rajouter des choses dans la FAQ.

    Si tu as envie de la faire, y as pas de problème

  6. #6
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    effectivement, c'est une bonne remarque.
    Il ne faut pas hésité à nous envoyer un MP si quelqu'un pense qu'il fraudais rajouter des choses dans la FAQ.

    Si tu as envie de la faire, y as pas de problème
    C'est ce que j'ai commencé à faire ce matin.
    Il faut que je la finalise un peu avant de la proposer.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/10/2010, 10h21
  2. [VB.net] Thread avec paramètres
    Par WriteLN dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/04/2005, 17h42
  3. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33
  4. [PL/SQL] Curseur avec Paramètre
    Par blids dans le forum Oracle
    Réponses: 5
    Dernier message: 10/10/2004, 20h07
  5. Réponses: 3
    Dernier message: 21/05/2003, 11h44

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