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
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
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
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.
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
En effet se sont des QPushButton.
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())); }
A vrai dire, je pensais plutôt à quelque chose comme
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
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; };
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
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 :
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())); }
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
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.
Bonjour,
C'est ok, j'ai résolu mes problèmes !
Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager