私は学生で、論文のために質問ベースのゲームを作りたいと思っています。QT を使用してグラフィカル インターフェイスを作成したいと考えていますが、使用したことがなく、複数のウィンドウを持つアプリケーションを作成する方法がわかりません。「フォーム」と呼ばれる基本クラス (抽象) と、フォームから継承する他の 3 つのクラス (MainMenuForm、LoginForm、および GameForm) があります。
私が見つけたいくつかの例では、ウィンドウのレイアウトはコンストラクターで設定され、メインではメソッド show() と呼ばれますが、メインで次のようなことをしたいと思います。
// Creates a FormFactory object and ensures singleton instance
FormFactory * factory;
factory = factorySingleton.GetFactory();
//select a Form to display
int choice = 1;
Form * actualForm;
while (choice != 0)
{
factory->Init(choice);
actualForm = factory->ReturnActualForm();
choice = actualForm->Display();
}
すべての派生フォームに共通の Display メソッドは、どのウィンドウが表示されるかを示す int を返す必要があります (たとえば、MainMenuForm の Display メソッドは、ユーザーがログイン ウィンドウに進みたい場合は 2 を返し、ユーザーがログイン ウィンドウを閉じたい場合は 0 を返します)。応用); 明らかに、Display メソッドもフォームを表示する必要があります。
最後に、私は彼らが書いたすべての例で気づいた
return app.exec();
メインの最後に。
私のプロジェクトでは、どこに app.exec() を書くべきですか? while 文の前、後、または中?