QT文档说,从qt5开始,你应该使用QOpenGL*类而不是QGL*.
问题是没有QGLWidget替换.我想出你应该将QWindow与QOpenGLContext结合使用并调用setSurfaceType(OpenGLSurface);.
唯一的问题是QWindow不能将QWidget作为父级.那我怎么能嵌入一个QWindow aka.我的OpenGL绘图表面进入其他小部件?
Pet*_*erT 15
QT 5.1在一个奇怪的情况下是OpenGL和QWidget(和派生的)明智的.没有QGLWidget替代品,但所有其他QGL课程都有明确的替代品.
如果你不想使用旧的,QGLWidget你确实必须自己制造替代品QWindow.所以,首先你设置你的QWindow那个,正如你setSurfaceType( OpenGLSurface );在打电话之前正确地说的那样create();.然后你创建一个新的QOpenGLContext并使用它的makeCurrent()功能并传递你的QWindow.然后QWidget从QWindow使用中创建一个QWidget::createWindowContainer(window);
但这只是一个暂时的黑客,你不应该使用,除非你真的想要混合QtQuick和QWidget.然后,您可以使用名为QOpenGLWidget的5.2.0 5.4.0中的实际替换来替换此临时hack
| 归档时间: |
|
| 查看次数: |
7952 次 |
| 最近记录: |