QGLWidget和QOpenGLWidget有什么区别?

BRa*_*t27 3 qt

我正在网上阅读一些示例,以使用Qt使用OpenGL渲染内容,然后大部分使用QGLWidget。但是,当我使用Qt Designer时,我注意到它在窗体中添加了QOpenGLWidget。

有哪些优点/缺点?

Jac*_*ite 6

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

通常,新的QOpenGLWidget

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

本博客文章中所述。这包括:

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

简而言之:如果可以选择,请始终使用QOpenGLWidget,因为如果您不必保持向后兼容性,那么实际上没有任何缺点。