QGLWidget和QOpenGLWidget有什么区别?

时间:2015-07-20 15:23:32

标签: qt

我正在阅读网上的一些例子,使用Qt渲染OpenGL的东西,然后大多数使用QGLWidget。但是,当我使用Qt Designer时,我注意到它在表单中添加了一个QOpenGLWidget。

另一方有哪些优点/缺点?

1 个答案:

答案 0 :(得分:6)

最重要的一点是,QGLWidget仅出于兼容性原因而存在于较旧的代码库中。正如QGLWidget上的Qt文档中所建议的,从Qt 5.4开始,您应该使用QOpenGLWidget。

通常,新的QOpenGLWidget

  

保留熟悉的initializeGL / resizeGL / paintGL API,同时实现与复杂用户界面中其他小部件的完全互操作。

详见this blog post。这包括:

  • 使用framebuffer对象而不是本机窗口进行屏幕外渲染。这在移动平台上具有性能优势。
  • 增强了对实例化显式OpenGL配置文件的支持
  • 小部件之间的上下文共享已经简化
  • OpenGL状态的设置存在细微差别
  • 直接支持多重采样

简而言之:如果您有选择,请始终选择QOpenGLWidget,因为如果您不必保持向后兼容性,几乎没有任何缺点。