title: What is the difference between QQmlApplicationEngine and QQuickView?
body: <p>I'm using <code>QQmlApplicationEngine</code> as follows:</p>
  
  <pre><code>QGuiApplication app(argc, argv);
  
  QQmlApplicationEngine engine;
  engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
  
  app.exec();
  </code></pre>
  
  <p>But now I want to enable multisampling for my app, and <code>QQmlApplicationEngine</code> doesn't seem to have a <code>setFormat</code> method for enabling multisampling.</p>
  
  <p>I found a way to do it with a <code>QQmlApplicationEngine</code> <a href="https://v-play.net/developers/forums/t/antialiasing#post-9745" rel="noreferrer">in a forum</a>:</p>
  
  <pre><code>QQuickWindow* window = (QQuickWindow*) engine.rootObjects().first();
  QSurfaceFormat format;
  format.setSamples(16);
  window-&gt;setFormat(format)
  </code></pre>
  
  <p>But it relies on the first root object of the engine being a <code>QQuickWindow</code>, which is not documented in Qt docs. So I don't want to use that technique.</p>
  
  <p>Another way would be to skip <code>QQmlApplicationEngine</code> and create a <code>QQuickView</code> instead. This does have a <code>setFormat</code> method letting me enable multisampling, but I'm wondering, am I losing anything by switching from <code>QQmlApplicationEngine</code> to <code>QQuickView</code>?</p>
  
  <p>In other words, what are the differences between these two classes?</p>
  
  <p>One difference I found is this (from <a href="http://doc.qt.io/qt-5/qqmlapplicationengine.html#details" rel="noreferrer">here</a>):</p>
  
  <blockquote>
    <p>Unlike QQuickView, QQmlApplicationEngine does not automatically create a root window. If you are using visual items from Qt Quick, you will need to place them inside of a Window.</p>
  </blockquote>
  
  <p>This particular difference doesn't matter to me.</p>
  
  <p>Any other differences?</p>