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 :

[Qt4] Un bouton qui affiche le RadioButton sélectionné


Sujet :

Qt

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut [Qt4] Un bouton qui affiche le RadioButton sélectionné
    Bonsoir,

    Alors je dispose d'un GroupBox qui contient 3 QRadioButton Exclusifs.

    Et j'aimerais par le biai d'un QPushButton afficher dans le terminal le texte du QRadioButton qui est sélectionné.

    Et le problème est que je ne trouve pas de solution PROPRE, BIEN, OPTIMISEE ...

    En effet, je peux très bien gérer cette connection avec un slot personnalisé qui fait un long "if" qui vérifie pour chaque RadioButton s'il est sélectionné, auquel cas il affiche son texte.
    Mais je suis sûr qu'il y a mieux que ça, car dans le cas où nous nous retrouvions avec 100 RadioButton, ça deviendrait inconcevable de faire comme ça

    Donc voila, je débute en QT et je ne vois vraiment pas comment faire, merci de m'aider.


  2. #2
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Bonsoir Raiden1234,

    je cherche depuis 20 minutes, mais je ne trouve pas de fonction pour réaliser cela, mais ne peux tu pas "tricher"?
    C'est à dire, par exemple:
    • tu implémentes un slot recupererNomToggled() que tu connectes aux signal toggled() de tes 3 QRadioButton. Ton slot recupererNomToggled() sauvegarde dans un QString (par exemple) le text du radio bouton coché.
    • tu implémentes un slot quiEstToggled() que tu connectes au signal clicked() de ton QPushButton. Ce slot affiche la valeur contenue dans ton QString précedent.


    Non?

    Mac & Cheese

  3. #3
    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
    Salut,

    Il faut passer par un QButtonGroup (qui est un conteneur *logique* pas graphique). Ensuite, tu profites de sa méthode checkedButton() et tadaaaa, t'as un pointeur vers ton bouton radio actif.

  4. #4
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Bon et bien je retire ma solution boiteuse
    Ma façon de chercher dans la doc Qt ne doit pas etre au point

    Mac & Cheese

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par mac&cheese Voir le message
    Bonsoir Raiden1234,
    [LIST][*]tu implémentes un slot recupererNomToggled() que tu connectes aux signal toggled() de tes 3 QRadioButton.
    Il faudrait que je fasse trois connect non ?

    Citation Envoyé par mac&cheese Voir le message
    Bonsoir Raiden1234,
    • Ton slot recupererNomToggled() sauvegarde dans un QString (par exemple) le text du radio bouton coché.
    Comment je fais pour obtenir le texte d'un radio bouton ? Je crois pas que la méthode text() fonctionne pour un radio bouton, ou alors je me trompe ?


    Je vais voir du côté du ButtonGroup comme conseillé par IrmatDen, ça semble être la solution la plus adaptée.

    Merci à vous deux !

  6. #6
    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
    Citation Envoyé par mac&cheese Voir le message
    Bon et bien je retire ma solution boiteuse
    Ma façon de chercher dans la doc Qt ne doit pas etre au point

    Mac & Cheese
    Disons que ce n'est pas un usage conventionnel, donc la doc n'en parle pas de la façon attendue; la seule mention qui en est faite dans la description des boutons radio est:
    If you need multiple exclusive button groups for radio buttons that belong to the same parent widget, put them into a QButtonGroup.
    Ensuite, ben, qui dit groupe de bouton, dit moyen d'en retrouver, donc...

    @raiden1234:
    Comment je fais pour obtenir le texte d'un radio bouton ? Je crois pas que la méthode text() fonctionne pour un radio bouton, ou alors je me trompe ?
    Un QRadioButton est un QAbstractButton, donc... ? (je te laisse te répondre)

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    text : QString

    This property holds the text shown on the button.

    This property will return a an empty string if the button has no text. If the text contains an ampersand character (&), a mnemonic is automatically created for it. The character that follows the '&' will be used as the shortcut key. Any previous mnemonic will be overwritten, or cleared if no mnemonic is defined by the text.

    There is no default text.

    Access functions:
    * QString text () const
    * void setText ( const QString & text )
    Ben apparemment si, c'est text() également

  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
    Voilà
    Qt est une lib utilisant beaucoup l'héritage; il faut toujours penser à regarder la doc de la classe utilisée, et si ce que tu cherches n'y est pas, dans les classes mères.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/03/2011, 04h33
  2. clic bouton qui affiche une boite de dialogue
    Par Nayra dans le forum AWT/Swing
    Réponses: 17
    Dernier message: 09/03/2009, 12h42
  3. bouton qui affiche le texte
    Par Alex59126 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/02/2009, 08h53
  4. Des boutons qui affichent des sous formulaires
    Par nicolas2603 dans le forum IHM
    Réponses: 2
    Dernier message: 27/11/2007, 15h43
  5. icone de bouton qui affiche une LOV
    Par med_anis_dk dans le forum Forms
    Réponses: 4
    Dernier message: 29/05/2006, 01h25

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