Несколько окон с QT

Я студент, и для своей диссертации я хочу создать игру на основе вопросов; Я хотел бы использовать 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?

0

Решение

Ваш дизайн довольно плохой. Код, который вы цитировали, должен быть в отдельном классе, который создается перед вызовом app.exec (). Текущее решение позволяет выбрать форму только один раз, она будет отображаться, и когда вы закроете ее, программа завершится.

Прочитайте документы Qt о сигналах и слотах, а также о том, как писать приложения Qt GUI, вам нужен другой подход.

0

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


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