Bonjour à tous.
J'ai ce programme pour lequel je souhaite tester si une valeur est renseignée dans un QlineEdit.
Le contrôle [ if (m_nom->text().isEmpty()) ] se fait lors de l'appel du slot personnalisé après avoir cliqué sur le bouton "Générer". A ce moment l'application plante, que le champ soit vide, ou pas.
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
40
41
42
43
44
45
46
47
48
49 #include "fenprincipale.h" FenPrincipale::FenPrincipale(QWidget *parent) : QWidget(parent) { setFixedSize(300,150); QVBoxLayout *arrangementGal = new QVBoxLayout; arrangementGal->addWidget(groupSup()); QPushButton *boutonGenerer = new QPushButton("Générer !"); QWidget::connect(boutonGenerer, SIGNAL(clicked()), this, SLOT(ouvrirDialogue())); arrangementGal->addWidget(boutonGenerer); this->setLayout(arrangementGal); } QGroupBox *FenPrincipale::groupSup() { QGroupBox *groupBox = new QGroupBox(tr("&Définition de la classe")); QLineEdit *m_nom = new QLineEdit; QLineEdit *m_classeMere = new QLineEdit; QFormLayout *layoutSup = new QFormLayout; layoutSup->addRow("&Nom : ", m_nom); layoutSup->addRow("Classe &mère : ", m_classeMere); groupBox->setLayout(layoutSup); return groupBox; } void FenPrincipale::ouvrirDialogue() { if (m_nom->text().isEmpty()) { QMessageBox::information(this, "Fenêtre principale","Le nom est vide"); } else { FenCodeGenere secondWindow("Deuxième fenêtre"); secondWindow.exec(); } }
Le compilateur ne donne pas de problème et il me semble que la syntaxe est correcte.
Pourriez-vous m'orienter sur le problème.
Merci par avance.
Pour info voici le fichier d'entête :
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 #ifndef FENPRINCIPALE_H #define FENPRINCIPALE_H #include "fencodegenere.h" //#include <QApplication> #include <QWidget> #include <QLineEdit> #include <QGroupBox> #include <QFormLayout> #include <QVBoxLayout> #include <QPushButton> #include <QMessageBox> #include <QString> class FenPrincipale : public QWidget { Q_OBJECT public: explicit FenPrincipale(QWidget *parent = 0); signals: public slots: void ouvrirDialogue(); private: QGroupBox *groupSup(); QLineEdit *m_nom; QString m_texte; }; #endif // FENPRINCIPALE_H
Partager