Qt Когда диалоговое окно вернет QDialog :: Rejected

Я попал в беду. У меня есть QDialog в качестве формы входа. Когда я вхожу в систему, форма закрывается и появляется мое главное окно. Мой логин в порядке, но когда он закрывается, он возвращает QDialog :: Rejected.

Что я могу сделать, чтобы предотвратить возврат QDialog :: Rejected? И когда он вообще вернет QDialog :: Rejected?

Код при входе:

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);
}

главный() :

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

Это всегда будет отвергнуто.

0

Решение

Попробуй позвонить done(QDialog::Accepted); вместо close(); в Login::on_cmdLogin_clicked()

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]