Home > OS >  QT CPP login dialog cloisng when input wrong password
QT CPP login dialog cloisng when input wrong password

Time:06-18

I made a simple login with qdialog on main.cpp file. When I input wrong password, Dialog didn't asks password again, simple closing a dialog. How can I make asks again when input wrong? QT 5.15 C

Here is my code

QString login = QInputDialog::getText(NULL, "Login","username",QLineEdit::Normal);

       if (login == cnstnt::username)
       {

            QString getPassword = QInputDialog::getText(NULL, "Login","password",QLineEdit::Password);


            QString hashpassword = hlpr::passwordHash(getPassword.toUtf8());

            if(hashpassword == hlpr::getTxtPassword()){

                   w.show();
            }else{
                QMessageBox::warning(nullptr, "error!", "wrong password!");

            }

       }
       else
       {
           QMessageBox::warning(nullptr, "error!", "Kullanıcı adınız hatalı!");


       }

CodePudding user response:

This should work:

QString login = QInputDialog::getText(NULL, "Login","username",QLineEdit::Normal);

if (login == cnstnt::username)
{

  QString getPassword = QInputDialog::getText(NULL, "Login","password",QLineEdit::Password);
  QString hashpassword = hlpr::passwordHash(getPassword.toUtf8());

  while (hashpassword != hlpr::getTxtPassword()) {
    QMessageBox::warning(nullptr, "error!", "wrong password!");
    QString getPassword = QInputDialog::getText(NULL, "Login","password",QLineEdit::Password);
    hashpassword = hlpr::passwordHash(getPassword.toUtf8());
  }

  w.show();

}
else
{
  QMessageBox::warning(nullptr, "error!", "Kullanıcı adınız hatalı!");


}

The loop condition checks if the password is incorrect. If it is, it shows a message and asks for password again until the password is a match.

  •  Tags:  
  • c qt
  • Related