Qt QQmlApplicationEngine拒绝显示qml代码

标签 qt qml

我有这个专业文件

QT += qml quick widgets
TARGET = sPassKeeper
include(src/src.pri)
include(qml/qml.pri)
RESOURCES += \
    resources.qrc

在 src pri 和 qml pri 中只有单行
qml文件
OTHER_FILES += \
    qml/main.qml

源文件
SOURCES += \
    src/main.cpp

在 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();
}

主文件
import QtQuick 2.0
import QtQuick.Controls 1.1

ApplicationWindow{
    title: "sPassKeeper"
    Button{
        text: "Hello"
    }
}

结果得到了这个输出

QML debugging is enabled. Only use this in a safe environment. Ok engine created



未显示任何内容且过程未完成。

最佳答案

你缺少这个:

ApplicationWindow {
    visible: true

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
    }
}

关于Qt QQmlApplicationEngine拒绝显示qml代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24584970/

相关文章:

android - Qt for android 找不到多媒体模块

c++ - Qt和chm帮助文件格式

MySQL Match-Against 查询调优

QtCreator : QML Debugger, 连接被拒绝 - 关闭 QML 调试器?

qt - 这是一个不好的做法吗 : embed QML in a QT dockable widgets application?

qt - 如何加快QTableWidget的速度

c++ - 发出 Qt 信号时是否有可能抛出异常?

c++ - 在 C++ 和 QML 之间切换 View 时的奇怪行为

listview - BlackBerry Cascades 中的 ListView 崩溃

c++ - 使用Qt和c++开发游戏