[基础]软件调用qml的两种方式

qml有两种启动方式:

1,使用QQmlApplicationEngine 搭配 Window

2,使用QQuickView 搭配 Item

方式1【对窗口的控制权在QML】 

#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

main()函数非常简单,定义了一个QQmlApplicationEngine实例,代表QML引擎,然后load()放在qrc的主QML文档main.qml中。最后就是启动Qt应用的主事件循环:app.exec()。

上面这种启动方式对应Window,所以main.qml的根结构是Window

方式2【对窗口的控制权在C++】  

#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();
    return app.exec();
}

上面这种启动方式对应Item,所以main.qml的根结构是Item

如果用上面这种启动,但main.qml的根结构是Window,那会报错,错误内容是:
 

QQuickView does not support using a window as a root item. 

If you wish to create your root window from QML, consider using QQmlApplicationEngine instead. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值