Qt QQmlApplicationEngine refuse to display qml code

qml, qt

Solution

You're missing this:

ApplicationWindow {
    visible: true

Qt Creator's new project wizard (`New File or Project... > Qt Quick Application`) has a step where you choose the component set (`Select Qt Quick Component Set`). If you choose Qt Quick Controls (which are required in order to use `ApplicationWindow`), Creator generates the correct code for you:

import QtQuick 2.2
import QtQuick.Controls 1.1

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    menuBar: MenuBar {
        Menu {
            title: qsTr("File")
            MenuItem {
                text: qsTr("Exit")
                onTriggered: Qt.quit();
            }
        }
    }

    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }
}

Problem

I have this pro file ``` QT += qml quick widgets TARGET = sPassKeeper include(src/src.pri) include(qml/qml.pri) RESOURCES += \ resources.qrc ``` in src pri and qml pri only single lines qml.pri ``` OTHER_FILES += \ qml/main.qml ``` src.pri ``` SOURCES += \ src/main.cpp ``` In main.cpp got this code ``` #include <QApplication> #include <QQmlApplicationEngine> #include <QtDebug> int main(int argc, char *argv[]) { QApplication app(argc, argv); QQmlApplicationEngine engine(QUrl("qrc:/new/prefix1/qml/main.qml")); qDebug() << "Ok engine created"; // Q_UNUSED(engine) return app.exec(); } ``` main.qml ``` import QtQuick 2.0 import QtQuick.Controls 1.1 ApplicationWindow{ title: "sPassKeeper" Button{ text: "Hello" } } ``` As a result got this output QML debugging is enabled. Only use this in a safe environment. Ok engine created Nothing displayed and process is not completed.

Original source