Bonjour.
Comme dit dans le titre, j'ai un problème lors de la récupération du résultat d'un QDialog.
J'utilise une fenêtre PasswordRequest héritant de QDialog. Cette fenêtre check le mot de passe entré, s'il est bon, elle appelle accept(), sinon reject().
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class PasswordRequest : public QDialog { Q_OBJECT public: explicit PasswordRequest(QWidget *parent = 0); ~PasswordRequest(); bool checkPassword(); public slots: void okClicked(); private: Ui::PasswordRequest *ui; };
Cette fenêtre est utilisée de la façon la plus simple (telle que dictée dans la doc) :Code:
1
2
3
4
5
6
7
8
9
10
11
12 bool PasswordRequest::checkPassword() { return ui->lineEdit->text() == "azerty"; } void PasswordRequest::okClicked() { if(checkPassword()) accept(); else reject(); }
Mon problème est le suivant : le résultat récupéré dans res est TOUJOURS QDialog::Accepted. J'ai vérifié en pas-à-pas et la fonction reject() met bien à QDialog::Rejected le résultat de la fenêtre, pourtant c'est QDialog::Accepted qui est placé dans res. Alors là, je ne sais plus quoi faire ni où chercher.Code:
1
2
3
4
5 bool UserModeGate::passwordRequest() { int res = PasswordRequest(this).exec(); return QDialog::Accepted == res; }
Quelqu'un aurait-il une idée ?