本文介绍了QWindow如何替换QGLWidget?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 QT文档说,从qt5开始,您应该使用QOpenGL *类而不是QGL *. 问题是没有QGLWidget替代品.我发现应该将QWindow与QOpenGLContext结合使用,并调用setSurfaceType(OpenGLSurface);.唯一的问题是QWindow不能将QWidget作为父级.所以我怎么能嵌入QWindow呢.我的OpenGL绘图表面可以放到其他小部件中?解决方案 QT 5.1在OpenGL和QWidget(并派生)方面很奇怪.没有QGLWidget替代品,但所有其他QGL类都有明显的替代品.如果您不想使用旧的QGLWidget,则确实必须用QWindow替代.因此,首先,您要设置QWindow,然后如您所说正确地调用setSurfaceType( OpenGLSurface );,然后再在其上调用create();.然后,创建一个新的QOpenGLContext并使用其makeCurrent()函数并传递您的QWindow.然后,使用 QWidget::createWindowContainer(window);从QWindow创建QWidget > 但这只是一个临时性的技巧,除非您确实想将QtQuick与QWidget混合使用,否则不必使用.然后,您可以在 5.4.0 called QOpenGLWidget 这篇关于QWindow如何替换QGLWidget?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
09-22 19:38