Как в Qt Widgets сделать переход между окнами?
Точней организовать такую структуру, которая при нажатии кнопки, к примеру, создавало другое окно, а это закрывало и в памяти прошлое окно не висело? Использовал stackedwidgets
для этого, но там я как понял будет в памяти висеть все другие окна, хотелось бы обойтись без этого.
Например так:
void MyClass::OnButtonClicked()
{
FirstWindow->close();
FirstWindow->deleteLater();
FirstWindow = nullptr;
SecondWindow = new MyWindow();
SecondWindow->show();
}
Здесь FirstWindow->close()
должна внутри вызвать QWindow::destroy() и ресурсы нативной оконной подсистемы освободятся. Вызов FirstWindow->deleteLater() удалит сам QObject
на следующем цикле обработки сообщений. Наконец все ресурсы освобождены поэтому указатель FirstWindow
зануляется.
Далее просто создается новое окно, при этом родителем у него будет глобальный QApplication
. Если нужен другой родитель, то нужно его подставить в конструктор.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
(есть точка или нет) Устанавливаю QGraphicsScene для QGraphicsView
Вот, исправил некоторые ошибки в Вашем коде, компилируется, выполняется