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

Discussion :

Afficher un texte lorsque deux boutons sont activés

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Afficher un texte lorsque deux boutons sont activés
    Bonjour,

    Ma question est très simple : comment afficher un texte dans un label seulement si deux boutons sont activés ?

    Merci d'avance de votre aide

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut

    D'abord, il faut que tu précises : quel type de bouton? Et qu'entend tu par "activé"

    Ensuite, le principe est simple : il faut tester deux booléens testant chacun l'état d'un des boutons. Si les deux boolénens sont à true, tu appel setVisible() (ou setVisible(true) ), sinon, tu appelles setVisible(false).

    Ou, plus simplement encore, tu fais tout d'une traite, sous la forme de setVisible(stateButton1 && stateButton2) (où stateButton1 et stateButton2 indiquent respectivement l'"activation" du premier et du deuxième bouton )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Désolé du manque d'info.
    Je m’explique j'ai deux boutons l'un me permet de connecter un port série l'autre un serveur. (Les boutons sont simplement mis en place avec QDesign).
    Par activé, je veux dire que seulement si le port série et le serveur sont connectée le label affiche ON.

    J'espère être compréhensible.
    Merci d'avance.

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Mais quel genre de boutons

    Des QPushButtons des QCheckbox des QRadioButton Ce sont trois possibilités d'éléments qui peuvent être typiquement assimilés à des boutons, mais leur utilisation sera totalement différente.

    Pour les QPushButtons "classiques", il s'agira de créer un slot réagissant au click de manière à modifier la valeur d'un booléen (et bien sur, de choisir un booléen différent pour chaque bouton). Et ce sont les deux booléens en question qui devront servir pour définir si ton QLabel (ou ton QText) est visible ou non.

    Pour les deux autres, tu peux simplement interroger leur propriété isChecked() qui permet de savoir s'il sont cochés ou non (true -->ils sont cochés; false-->ils ne sont pas cochés)
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    En effet se sont des QPushButton.

    Citation Envoyé par koala01 Voir le message
    Pour les QPushButtons "classiques", il s'agira de créer un slot réagissant au click de manière à modifier la valeur d'un booléen (et bien sur, de choisir un booléen différent pour chaque bouton). Et ce sont les deux booléens en question qui devront servir pour définir si ton QLabel (ou ton QText) est visible ou non.
    Aurais-tu un exemple s'il te plait ?

    J'ai essayé ça fonctionne seulement si je clique sur un bouton sa me lance le code je voudrai que ça lance le code seulement si j'ai cliquer sur les deux boutons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void CConsole :: onClicked()
    {
        ui->label->setText("ON");
    }
     
    void CConsole :: test()
    {
        button1 =false;
        butoon2 =false;
        connect(ui->pushButton_Connexion,SIGNAL(clicked()),this,SLOT(onClicked()));
        connect(ui->pushButton_Co_Server,SIGNAL(clicked()),this,SLOT(onClicked()));
    }

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    A vrai dire, je pensais plutôt à quelque chose comme
    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
    class MaClasse{
    public:
        MaClasse(/* ... */) : button1Clicked_{false},button2Clicked{false}{}
    privateSlot:
        void oneClick(){ // connecté au clique de button1
            button1Clicked_=true;
            showLabel();
        }
     
        void oneClick(){ // connecté au clique de button2
            button2Clicked_=true;
            showLabel();
        }
    private:
        void showLabel(){
             label_->setVisible(button1Clicked_ && button2Clicked_);
        }
        bool button1Clicked_;
        bool button2Clicked_;
        QLabel * label;
        QPushButton * button1;
        QPushButton * button2;
    };
    Ici, j'ai joué la carte de la souplesse en permettant de cliquer sur button1 ou sur button2 en premier lieu. D'autres solutions auraient pu être envisagées
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Je vois plus ou moins ce que tu as fais cependant je suis seulement en BTS et je n'ai jamais vu cela ...

    Pour que tu visualise voici un screen de mon programme :
    Nom : umvk.png
Affichages : 97
Taille : 11,0 Ko

    Donc le but est que lorsque les boutons Connexion sont enclenchés (les deux) dans le label au dessus cela m'affiche "ON" comme sur l'image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void CConsole :: onClicked()
    {
        ui->label->setText("ON");
    }
     
    void CConsole :: test()
    {
        button1 =false;
        butoon2 =false;
        connect(ui->pushButton_Connexion,SIGNAL(clicked()),this,SLOT(onClicked()));
        connect(ui->pushButton_Co_Server,SIGNAL(clicked()),this,SLOT(onClicked()));
    }

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Ecoute,

    je t'ai donné ici toutes les informations dont tu pouvais avoir besoin. La seule différence, c'est que je t'ai proposé un code qui n'utilise pas un fichier ui.

    Même en étant "seulement en BTS", tu ne dois pas t'attendre à ce que l'on te donne toutes les solutions toutes faites, ce ne serait clairement pas un bon service à te rendre!

    Je t'ai clairement indiqué la logique à suivre, j'ai bien insisté sur le fait que les signaux émis par tes deux boutons devaient être traité séparément, je t'ai donné un exemple de ce qu'il faut faire. Maintenant, tu n'as plus qu'à adapter à ta situation (au fait que tu travailles à l'aide d'une interface générée à l'aide du designer). Si tu n'es pas capable de t'en sortir avec tout cela, si tu n'es pas capable de fouiller un peu dans les documentations que tu as à ta disposition, c'est que tu n'as peut être pas choisi la formation qui te convient
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Tu as entièrement raison ! Veillez m'excuser de ma fainéantise ...

    J'ai réussis !
    Cependant normalement mon programme m'affiche "Serial On" ou "Server On" si je clique sur l'un des boutons. Ici ça reste vide en attendant que je clique sur le deuxième bouton.
    Mais aussi lorsque je me déconnecte et reconnecte au deux cela ne fonctionne plus ça m'affiche "ON" au premier clique de bouton.

    Pendant que je poste chaque réponse je cherche aussi une solution derrière. Je n'attends pas ta réponses pour travailler mon problème.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    C'est ok, j'ai résolu mes problèmes !

    Merci

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

Discussions similaires

  1. Afficher du texte grâce au bouton
    Par narome2b dans le forum Tkinter
    Réponses: 4
    Dernier message: 07/04/2012, 18h42
  2. Afficher du texte sur des boutons ou label
    Par Geroni dans le forum Débuter
    Réponses: 1
    Dernier message: 31/08/2011, 09h25
  3. [CSS 3] Afficher du texte sur deux colonnes
    Par king_soft dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 25/03/2010, 15h11
  4. Réponses: 4
    Dernier message: 02/06/2007, 12h35

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