我有一个 QML 文件,其中包含 QML 项目的布局,现在我希望这些项目之一是 QGLWidget。即我想渲染到特定的 QML 项目。
有谁知道如何做到这一点?
我有一个 QML 文件,其中包含 QML 项目的布局,现在我希望这些项目之一是 QGLWidget。即我想渲染到特定的 QML 项目。
有谁知道如何做到这一点?
我认为最简单的方法是为 QML 提供一个用 C++ 实现的新自定义组件。我找不到任何准备好的东西。
在使用QPainter::beginNative()函数后,您可以继承 QDeclarativeItem 并在绘图函数中实现您的 OpenGL 代码。之后,您可以通过这种方式将新的自定义项“导出”到 QML 。这很简单,应该可以工作,但是您必须将 QDeclarativeView 的视口设置为 QGLWidget,如下所示:
QDeclarativeView view;
// This is needed because OpenGL viewport doesn't support partial updates.
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdateMode);
view.setViewport(new QGLWidget);
否则您将不得不为整个应用程序使用 opengl 图形系统。另一种方法是使用QML/3D。
该线程将为您提供一些其他信息。