Qt QQmlApplicationEngine拒绝显示qml代码

tty*_*ty6 4 qt qml

我有这个专业档案

QT += qml quick widgets
TARGET = sPassKeeper
include(src/src.pri)
include(qml/qml.pri)
RESOURCES += \
    resources.qrc
Run Code Online (Sandbox Code Playgroud)

在src pri和qml pri中只有单行qml.pri

OTHER_FILES += \
    qml/main.qml
Run Code Online (Sandbox Code Playgroud)

src.pri

SOURCES += \
    src/main.cpp
Run Code Online (Sandbox Code Playgroud)

在main.cpp中得到了这段代码

#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();
}
Run Code Online (Sandbox Code Playgroud)

main.qml

import QtQuick 2.0
import QtQuick.Controls 1.1

ApplicationWindow{
    title: "sPassKeeper"
    Button{
        text: "Hello"
    }
}
Run Code Online (Sandbox Code Playgroud)

结果得到了这个输出

启用QML调试.只能在安全的环境中使用它.好的引擎创建了

没有显示任何内容,也没有完成处理.

Mit*_*tch 7

你错过了这个:

ApplicationWindow {
    visible: true
Run Code Online (Sandbox Code Playgroud)

Qt Creator的新项目向导(New File or Project... > Qt Quick Application)有一个步骤,您可以选择组件集(Select Qt Quick Component Set).如果您选择Qt Quick Controls(为了使用而需要ApplicationWindow),Creator会为您生成正确的代码:

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
    }
}
Run Code Online (Sandbox Code Playgroud)