Qt диалог, как я могу вызвать accept () и reject () из функции - PullRequest
2 голосов
/ 26 мая 2011

У меня есть ситуация, когда я открываю окно QDialog из файла main.cpp , а затем жду, когда вернется метод exec(), основанный на успехе или неудаче QDialog. Как это:

   int main( ... ) {
    LoginDialog *loginDlg = new LoginDlg;

    if( loginDlg->exec() != Qt:;Accepted ) {
    return 0;
    }

    //check the login Info
    delete loginDlg;

    MainWindow w;
    w.show()
    return app.exec();
    }

Из примеров Qt (адресная книга) я видел, что просто могу использовать слоты accept() и reject(). Дело в том, что мне нравится закрывать окно, основываясь на потоке некоторых функций, а не на кнопках ok / close. Как я могу вызвать эти слоты из функции? .

Ответы [ 2 ]

6 голосов
/ 26 мая 2011

Как указал liaK, вы можете просто вызывать следующие функции из своего кода:

loginDlg->accept();
loginDlg->reject();

Вы также можете вызвать следующую эквивалентную функцию, используя результат в качестве параметра:

loginDlg->done(QDialog::Accepted);
loginDlg->done(QDialog::Rejected);

PS: Обратите внимание, что в вашем вопросе нет значения Qt :: Accepted. Правильная константа - QDialog :: Accepted

4 голосов
/ 26 мая 2011

Просто позвоните им .. Они нормальные функции ..

например:

loginDlg->accept();

Также см. это ..

...