私のコードは次のようになります。
QApplication app(argc, argv);
QQmlApplicationEngine app_engine;
app_engine.load("qml/main.qml");
return app.exec();
私が提供するバッファにすべてをQtでレンダリングさせる方法を教えてください。OpenGL は避ける必要があります。QWebPage でこれを機能させることもできますが、これは私にははるかに難しいようです...
私のコードは次のようになります。
QApplication app(argc, argv);
QQmlApplicationEngine app_engine;
app_engine.load("qml/main.qml");
return app.exec();
私が提供するバッファにすべてをQtでレンダリングさせる方法を教えてください。OpenGL は避ける必要があります。QWebPage でこれを機能させることもできますが、これは私にははるかに難しいようです...
QML出力をQImageとして取得する方法を見つけましたが、QMLウィンドウにフォーカスがある場合にのみ機能します。不完全なコード スニペットは次のとおりです。
QApplication app(argc, argv);
QQmalApplicationEngine *appEngine = new QQmlApplicationEngine(this);
appEngine->load(script_path);
...
app.exec();
アプリの実行中に、次のようにウィンドウの内容を取得できます。
QQuickWindow *win = qobject_cast<QQuickWindow *>(appEngine->rootObjects().first());
QImage grabbed = win->grabWindow();
いくつかの欠点があります (つまり、入力フォーカスが失われるとカーソルが消える、grabWindow() が非常に遅いなど)。
さらに、QML ページのレンダリングをカスタム FBO にリダイレクトすることも可能です。これにより、はるかに高速なソリューションが提供されますが、いくつかの問題もあります。