我有这个专业文件
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/