Как в 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
. Если нужен другой родитель, то нужно его подставить в конструктор.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
(есть точка или нет) Устанавливаю QGraphicsScene для QGraphicsView
Вот, исправил некоторые ошибки в Вашем коде, компилируется, выполняется