What's the difference between QQuickView and Q

2020-07-01 06:23发布

问题:

I am currently working with Qt 5.2.1... and I have a (maybe stupid?) question: What is the difference between QQuickView and QQuickWindow?

I read the documentation but it is still not clear to me...

回答1:

From the Qt documentation:

The QQuickView class provides a window for displaying a Qt Quick user interface.

QQuickView is a convenience subclass of QQuickWindow which will automatically load and display a QML scene when given the URL of the main source file.

So QQuickView is a subclass of QQuickWindow which manages displaying a scene from a QML file and could be used easily like:

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

For displaying a graphical QML scene in a window you can also use the QQuickWindow class.

Also from the Qt documentation:

A QQuickWindow always has a single invisible root item. To add items to this window, reparent the items to the root item or to an existing item in the scene.

So it can be used like:

QQmlApplicationEngine engine;
engine.load(QUrl("myqmlfile.qml"));

QObject *topLevel = engine.rootObjects().value(0);
QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);

window->show();