Bonsoir.
je suis débutant en C++,et je suis entrain de developper une application en c++ avec Qt.
svp la premiére fenetre de ma application c'est pour s'identifier.(on trouve dedans deux QLineEdit :User et Password).
je veux faire ceci:
a partir de user et password saisie par l'utulisateur,si vous etes administrateur(stocké dans la table login d'une base de donné) alors un objet de class FenetreAdmin s'ouvre (c'est une fenetre contenant des widgets spécifié aux adminstrateur.).
si vous étes un patient(stocké dans la table Patient d'une base de donné) alors un objet de class FenetrePatient s'ouvre (c'est une fenetre contenant des widgets spécifié aux patient.).
et enfin si vous étes un medecin(stocké dans la table medecin d'une base de donné) alors un objet de class FenetreMedecin s'ouvre (c'est une fenetre contenant des widgets spécifié aux Medecin.).
pour cela ,j'ai creé un slot appelé cliqueBoutonConnecter(),qui sera appelé lors de clique sur le bouton connecter aprés le saisie de user et password.
j'ai creé encore trois méthodes :connecterTantQueAdmin() , connecterTantQueMedecin() , connecterTantQuePatient().
Donc ,aprés le saisie de pwd et user ,j'ai creé un objet de class Login qui stocke les deux textes de QLineEdit et on teste si il est administrateur ,medecin ou patient via les trois methodes precedentes.
voici svp la fichier login.h(declaration de classe Login)
et la fichier login.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Login { private: QString user; QString psw; public: Login(QString userd,QString pswd); bool connecterTantQueAdmin(); bool connecterTantQuePatient(); bool connecterTantQueMedecin(); };
et finalement l'implementation de cliqueBoutonConnecter()
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 Login::Login(QString userd,QString pswd):user(userd),psw(pswd) { } bool Login::connecterTantQueAdmin() { QSqlQuery query; query.prepare("select * from LOGUIN where USER='"+user+"'and PWD='"+psw+"' "); return query.exec(); } bool Login::connecterTantQueMedecin() { QSqlQuery query; return(query.exec("select * from MEDECIN where LOGUIN='"+user+"'and PWD='"+psw+"' ")); } bool Login::connecterTantQuePatient() { QSqlQuery query; return(query.exec("select * from PATIENT where LOGUIN='"+user+"'and PWD='"+psw+"' ")); }
J'ai testé ,toujours il maffiche QMessageBox::critical meme si le pwd et mot de pass sont correctes (admin ou patient ou medecin).
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 void FenetreLogin::cliqueBoutonConnecter() { Login log(user->text(),password->text()); if(log.connecterTantQueAdmin()) { FenetreAdmin *fen = new FenetreAdmin; fen->show(); this->close(); } else if(log.connecterTantQueMedecin()) { FenetreMedecin *fen = new FenetreMedecin; fen->show(); this->close(); } else if(log.connecterTantQuePatient()) { FenetrePatient *fen = new FenetrePatient; fen->show(); this->close(); } else { QMessageBox::critical(this, "erreur", "Verifier votre user et mot de pass "); } }
merci d'avance![]()
Partager