我使用QQmlApplicationEngine
如下:
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
app.exec();
但是现在我想为我的应用启用多重采样,并且QQmlApplicationEngine
似乎没有setFormat
启用多重采样的方法。
我QQmlApplicationEngine
在论坛中找到了一种方法:
QQuickWindow* window = (QQuickWindow*) engine.rootObjects().first();
QSurfaceFormat format;
format.setSamples(16);
window->setFormat(format)
但它依赖于引擎的第一个根对象 a QQuickWindow
,这在 Qt 文档中没有记录。所以我不想使用那种技术。
另一种方法是跳过QQmlApplicationEngine
并创建一个QQuickView
。这确实有一种setFormat
方法可以让我启用多重采样,但我想知道,切换QQmlApplicationEngine
到是否会丢失任何东西QQuickView
?
换句话说,这两个类之间有什么区别?
我发现的一个区别是(从这里):
与 QQuickView 不同,QQmlApplicationEngine 不会自动创建根窗口。如果您使用 Qt Quick 中的可视项目,则需要将它们放置在 Window 内。
这种特殊的差异对我来说并不重要。
还有其他区别吗?