我有一个 QML 文件,其中包含 QML 项目的布局,现在我希望其中一个项目成为 QGLWidget。即我想渲染到特定的 QML 项目。
有人知道如何做到这一点吗?
最佳答案
我认为最简单的方法是为 QML 提供一个用 C++ 实现的新自定义组件。我找不到任何准备好的东西。
在使用 QPainter::beginNative() 后,您可以子类化 QDeclarativeItem 并在绘制函数中实现 OpenGL 代码。功能。之后,您可以将新的自定义项目“导出”到 QML this way 。这非常简单并且应该可以工作,但是您必须将 QDeclarativeView 的视口(viewport)设置为 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 .
This thread将为您提供一些其他信息。
关于qt - OpenGL 渲染到 QML 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770599/