Я пытаюсь переключаться между разными файлами QML из C ++. Я использую QQMLApplicationEngine и могу загрузить новый файл с помощью engine.load(filename)
Прежде чем сделать это, я закрываю текущее окно (QQuickWindow), используя
QObject* pRootObject = in_pQmlApplicationEngine->rootObjects().first();
Q_ASSERT( pRootObject != NULL );
Q_ASSERT( pRootObject->objectName() == "mainWindow" );
QQuickWindow* pMainWindow = qobject_cast<QQuickWindow*>(pRootObject);
Q_ASSERT( pMainWindow );
pMainWindow->close();
который я нашел здесь: Правильная перезагрузка QQmlApplicationEngine
Это работает, в том смысле, что окно фактически закрывается, но и здесь возникает проблема - rootObject (из rootObjects QQMLApplicationEngine) не удаляется. Поэтому, если я несколько раз переключаюсь вперед и назад, список rootObjects просто увеличивается.
Кто-нибудь знает, что я делаю не так?