qt - OpenGL 渲染到 QML 项目

标签 qt qml qglwidget qtdeclarative

我有一个 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/

相关文章:

android - 如何使用qml在Qt5.2中获得全屏矩形?

linux - OpenGL窗口视频采集问题

qt - Qt setHorizo​​ntalHeaderLabel for qtableWidget

python - 无法从 PyQt5 连接到 mysql 服务器

c++ - 奇怪的 QT Unsigned Int 错误

qt - 主窗口中的垂直 QToolBar

qt - 如何分析 "Binding loop"

python - PySide2/QML 填充 Gridview 模型/委托(delegate)并为其设置动画

c++ - 如何在 beginNativePainting() 中翻转纹理?