QQuickView does not support using a window as a root item.

2021. 7. 24. 13:19Programming/Qt

반응형

QQuickView does not support using a window as a root item.

If you wish to create your root window from QML, consider using QQmlApplicationEngine instead

예제를 풀던 도중에 이런 오류가 나왔다.

방법1

https://forum.qt.io/topic/66300/qquickview-problems

여기 싸이트에서는 해석 그대로 QQuickView는 Window를 root 객체로 사용을 못한다고 한다.

그래서 Window를 Item으로 바꿨다. 하지만 오류는 뜨지 않았지만 결과도 안 보였다.

그래서 viewer.show(); (viewer는 QQuickView객체이름이다) 코드를 추가했다. → 해결

방법2

https://forum.qt.io/topic/64505/qqmlcontext-setcontextproperty-property-is-not-defined

그래서 QQuickView가 아닌 QQmlApplicationEngine을 대신 사용해서 실행했다.

수정전

QQuickView viewer;
    Message msg;

    viewer.engine()->rootContext()->setContextProperty("msg", &msg);
    viewer.setSource(QUrl( "qrc:///main.qml" ) );

수정후

QQmlApplicationEngine engine;
    Message msg;
    engine.rootContext()->setContextProperty("msg", &msg);
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

→ 해결

반응형

'Programming > Qt' 카테고리의 다른 글

QML module not found 해결법  (0) 2021.12.20
Unable to assign QQuickRootItem to double  (0) 2021.07.31
Error while building/deploying project  (0) 2021.07.22
Qt Quick이란?  (0) 2021.07.21
QML Settings: Failed to initialize QSettings instance.  (0) 2021.07.18