OpenGL渲染到QML项目

blu*_*kin 6 qt qglwidget qml qtdeclarative

我有一个QML文件,其中包含QML项目的布局,现在我希望其中一个项目是QGLWidget.即我想渲染到特定的QML项目.

有人知道怎么做吗?

Luc*_*lon 3

我认为最简单的方法是为 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);
Run Code Online (Sandbox Code Playgroud)

或者您必须为整个应用程序使用 opengl 图形系统。另一种方法是使用QML/3D

该线程将为您提供一些其他信息。