Bonjour,
je débute en programmation QT.
Je commence par quelques exemples simples pour voir si je maitrise les éléments de l'application finale avant de me lancer dans un programme plus ambitieux.
Je bloque sur un problème qui devrait être simple: je cére une fenêtre contanant un qChecbox et un bouton et je souhaiterais que qand je cohe le qCheckbox, le bouton soit désactivé. Voci ce que j'ai tenté :
fichier main.cpp
fichier FenOutil.h
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 #include <QApplication> #include <QtGui> #include "FenOutil.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); FenOutil F_outil; F_outil.show(); return app.exec(); }
Fichier FenOutil.cpp
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 #ifndef HEADER_FENOUTIL #define HEADER_FENOUTIL #include <QApplication> #include <QtGui> class FenOutil : public QWidget { Q_OBJECT public: FenOutil(); public slots: void cliquer(int valeur); private: QPushButton *bouton; QCheckBox *check; QGridLayout *layout; }; #endif
je n'ai pas de soucis à la compilation, mais quand je clique surle qCheckbox, la fenêtre plante.
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 #include "FenOutil.h" FenOutil::FenOutil() : QWidget() { //création des widgets QPushButton *bouton=new QPushButton("Bouton",this); QCheckBox *check=new QCheckBox(this); QGridLayout *layout = new QGridLayout; //création du layout layout->addWidget(check,0,0); layout->addWidget(bouton,0,1,1,2); setLayout(layout); //gestion des signaux QObject::connect(check, SIGNAL(stateChanged(int)), this, SLOT(cliquer(int))); } void FenOutil::cliquer(int valeur) { if (valeur==0) bouton->setEnabled(false); else bouton->setEnabled(true); }
Auriez-vous une piste pour ce problème
D'avance merci
Partager