Я студент, и для своей диссертации я хочу создать игру на основе вопросов; Я хотел бы использовать QT для разработки графического интерфейса, но я никогда не использовал его и не знаю, как создать приложение с несколькими окнами.
Существует базовый класс (абстрактный) под названием «Форма» и три других класса, которые наследуются от Form: 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, указывающий, какое отображение окна (например, метод Display MainMenuForm возвращает 2, если пользователь хочет перейти к окну Login, или 0, если пользователь хочет закрыть приложение); очевидно, метод Display также должен показывать форму.
Наконец, я заметил, что во всех примерах они пишут
return app.exec();
в конце основного.
Для моего проекта, где я должен написать app.exec ()? До, после или внутри оператора while?
Ваш дизайн довольно плохой. Код, который вы цитировали, должен быть в отдельном классе, который создается перед вызовом app.exec (). Текущее решение позволяет выбрать форму только один раз, она будет отображаться, и когда вы закроете ее, программа завершится.
Прочитайте документы Qt о сигналах и слотах, а также о том, как писать приложения Qt GUI, вам нужен другой подход.