现在我们有两种启动Qt Quick App模式:
1)QQmIAppIicationEngine搭配Window。
2)QQuickView搭配 Item。
两者的不同之处在于:使用QQuickView显示QML文档,对窗口的控制权(比如设置窗口标题、Icon、窗口的最小尺寸等)。在C++代码中使用 QQmIAppIicationEngine加载以Window为根对象的QML文档,QML文档则拥有窗日的完整控制权,可以直接设置标题、窗口尺寸等属性。
关于QQuickView的setSource()方法,它接受QUrI类型的参数,而QUrI可以识别qrc,但是必须以“qrc:”为前缀。这就是在main()函数中“viewer.setSource(QUrI("qrc:///main.qml")); "语句的来由。
使用模式1):
#include<QGuiApplication>
#include<QQmlApplicationEngine>
int main(int argc,char*argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///window.qml")));
return app.exec();
}
将window.qml 文件加载到qrc文件中即可。
使用模式2)
#include<QGuiApplication>
#include<QQuickView>
int main(int argc,char*argv[])
{
QGuiApplication app(argc, argv);
QQuickView viewer;
viewer.setResizeMode(QQuickView::SizeRootObjectToView);
viewer.setSource(QUrl("qrc:///rectangle.qml"));
viewer.show();
return app.exec();
}
将rectangle.qml 文件加载到qrc文件中即可。