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 : 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 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 bool UserModeGate::passwordRequest() { int res = PasswordRequest(this).exec(); return QDialog::Accepted == res; }
Quelqu'un aurait-il une idée ?
Partager