QQuickView和QQuickWindow有什么区别?

What's the difference between QQuickView and QQuickWindow?

本文关键字:区别 什么 QQuickWindow QQuickView      更新时间:2023-10-16

我目前正在使用Qt 5.2.1…我有一个(也许是愚蠢的?)问题:QQuickViewQQuickWindow有什么区别?

我读了文档,但我仍然不清楚…

来自Qt文档:

QQuickView类提供了一个显示Qt Quick用户的窗口接口。

QQuickView是QQuickWindow的一个方便子类的URL时,自动加载并显示QML场景主源文件。

所以QQuickView是QQuickWindow的子类,它管理从QML文件显示场景,可以很容易地使用,如:

QQuickView *view = new QQuickView;
view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
view->show();

要在窗口中显示图形化的QML场景,您还可以使用QQuickWindow类。

同样来自Qt文档:

QQuickWindow总是有一个不可见的根项。添加项目在此窗口中,将项表示为根项或现有项场景中的项目

所以它可以这样使用:

QQmlApplicationEngine engine;
engine.load(QUrl("myqmlfile.qml"));
QObject *topLevel = engine.rootObjects().value(0);
QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);
window->show();