2

main.cppQDialogファイルからウィンドウを開き、の成功または失敗に基づいてメソッドが戻るのを待つという状況があります。このような :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] / [閉じる]ボタンではなく、いくつかの関数フローに基づいてウィンドウを閉じるのが好きなことです。これらのスロットを関数からトリガーするにはどうすればよいですか?。

4

2 に答える 2

6

liaKが指摘したように、コードから次の関数を呼び出すことができます。

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

結果をパラメーターとして使用して、次の同等の関数を呼び出すこともできます。

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

PS:質問で指定されているQt::Accepted値がないことにも注意してください。正しい定数はQDialog::Acceptedです

于 2011-05-26T09:59:37.203 に答える
4

それらを呼び出すだけです。それらは通常の機能です。

例えば:

loginDlg->accept();

こちらもご覧ください。

于 2011-05-26T09:37:24.073 に答える