QQuickView和QQuickWindow有什么区别?

Mor*_*Dev 17 c++ qt qt-quick qt5 qtquick2

我目前正在使用Qt 5.2.1 ......我有一个(也许是愚蠢的?)问题:QQuickView和之间的区别是什么QQuickWindow

我看了文档,但我还不清楚......

Nej*_*jat 21

从Qt文档:

QQuickView类提供了一个显示Qt Quick用户界面的窗口.

QQuickView是QQuickWindow的一个便利子类,它在给定主源文件的URL时会自动加载并显示QML场景.

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

QQuickView *view = new QQuickView;
view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
view->show();
Run Code Online (Sandbox Code Playgroud)

要在窗口中显示图形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();
Run Code Online (Sandbox Code Playgroud)