Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在QML中托管QOpenGL小部件_Opengl_Qt4_Qml_Qglwidget - Fatal编程技术网

在QML中托管QOpenGL小部件

在QML中托管QOpenGL小部件,opengl,qt4,qml,qglwidget,Opengl,Qt4,Qml,Qglwidget,我有一个证明我是QGLWidget的库,界面只允许我调整/设置大小,并控制一些GL动画;但没有GL命令暴露在外部,我所做的只是初始化GLWidget,然后将上下文传递到库,然后调用swap buffer来显示动画 我想将这个QGLWidget库集成到QML中,是否可以在QML中使用QGLWidget?如果是,怎么做 QGLWidget源于QWidget,而QML widget被实现为QDeclarativeItem,它源于QGraphicsObject,这两个对象是不同的世界 在QML项中绘制O

我有一个证明我是QGLWidget的库,界面只允许我调整/设置大小,并控制一些GL动画;但没有GL命令暴露在外部,我所做的只是初始化GLWidget,然后将上下文传递到库,然后调用swap buffer来显示动画


我想将这个QGLWidget库集成到QML中,是否可以在QML中使用QGLWidget?如果是,怎么做

QGLWidget源于QWidget,而QML widget被实现为QDeclarativeItem,它源于QGraphicsObject,这两个对象是不同的世界

在QML项中绘制OpenGL图形的可能方法是声明一个新的QDeclarativeItem,将其公开给QML系统,然后重写该QDeclarativeItem子类的draw方法以进行本机绘制(通过调用draw方法中提供的QPaint实例的beginNativePainting和endNativePainting)

请查看以下两个链接:
http://developer.qt.nokia.com/forums/viewthread/4109这完全有可能!您可以使用这种方法来封装库

然后,您将
从QML文档导入
这个插件,您将很好地使用新元素并利用库提供的特性

提示:如果加载QML文档的应用程序被设置为在QGLWidget上,那么您不需要在插件中创建新的QGLWidget


演示如何从头开始创建简单/新的QML元素,以及如何在QML文档中使用它。

嗨,Karl,谢谢你的提示,今天让我来尝试一下……)Thx,它是固定的。