Je suis en difficulté. J'ai un QDialog comme un formulaire de connexion. Lorsque je me connecte, le formulaire se ferme et ma fenêtre principale apparaît. Mon login est correct mais quand il se ferme il renvoie QDialog :: Rejected.Qt Quand la boîte de dialogue retourne-t-elle QDialog :: Rejected
Que puis-je faire pour empêcher le retour de QDialog :: Rejected? Et quand va-t-il encore renvoyer QDialog :: Rejected?
code lorsque je me connecte:
void Login::on_cmdLogin_clicked()
{
if(ui->txtUsernameLogin->text().isEmpty() || ui->txtPassLogin->text().isEmpty())
{
QMessageBox::critical(this, "Vocabulary Trainer", "Please fill in both textboxes.", QMessageBox::Ok);
return;
}
User user(filepath + "/users.txt");
if (user.checkPassword(ui->txtUsernameLogin->text(), ui->txtPassLogin->text()))
{
username = ui->txtUsernameLogin->text();
close();
}
else
QMessageBox::warning(this, "Vocabulary Trainer", "Sorry, your password is incorrect.\nPlease type in the correct password.", QMessageBox::Ok);
}
main():
MainWindow w; //Real Window
Login lg(0); //Login Window
lg.set_path(workspace_path);
lg.setModal(true);
if(lg.exec() == QDialog::Rejected)
QMessageBox::critical(0, "rr", "", QMessageBox::Ok);
else
w.show(); //Shows the real window
Il sera toujours rejeté.
A travaillé. Mais pourquoi dois-je utiliser cela au lieu de fermer? –
Fermez la valeur de retour de exec à 0. Mais QDialog :: Accepted == 1, QDialog :: Rejected == 0. Vous devez définir la valeur de retour à 1 –
Oh, merci. Ne sait pas close définit la valeur de retour à 0. –