一:qml的根节点是Item的可见派生类
#include <QGuiApplication>
#include <QQuickView>
int main(int argc, char** argv)
{
QGuiApplication app(argc, argv);
QQuickView viewer;
viewer.setResizeMode(QQuickView::SizeRootObjectToView);
viewer.setSource(QUrl("qrc://main.qml"));
viewer.show();
app.exec();
}
二:qml的根节点是Window或者其派生类
#include<QGuiApplication>
#include<QQmlApplicationEngine>
int main(int argc, char** argv)
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
{
return -1;
}
return app.exec();
}
二者的区别:
QML的Item类似于Qt C++的QWidget,QML的Window类似于Qt C++的QWindow。
QQuickView本身作为一个顶层窗口,它是将加载的qml填充到了自己的客户区。
而QML的Window本身就是一个顶层窗口。