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.