Почему QQuickWindow-> gt; close () не удаляет объект из rootObjects?

Я пытаюсь переключаться между различными файлами 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 (из корневых объектов QQMLApplicationEngine) не удаляется. Так что, если я переключусь туда-сюда несколько раз, список rootObjects просто увеличится.

Кто-нибудь знает, что я делаю не так?

1

Решение

Задача ещё не решена.

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

Других решений пока нет …

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