一、说明
QOpenGLWidget提供了在Qt应用程序中显示集成OpenGL图形的功能。使用它非常简单:让您的类继承它,并像使用任何其他QWidget一样使用子类,除了您可以选择使用QPainter和标准OpenGL渲染命令之间的区别。
二、QOpenGLWidget概述
QOpenGLWidget提供了三个方便的虚拟函数,您可以在子类中重新实现以执行典型的OpenGL任务:
- paintGL() - 渲染OpenGL场景。每当窗口部件需要更新时调用。
- resizeGL() - 设置OpenGL视口、投影等。每当窗口部件被调整大小时调用(也在第一次显示时调用,因为所有新创建的窗口部件都自动获得调整大小事件)。
- initializeGL() - 设置OpenGL资源和状态。在第一次调用resizeGL()或paintGL()之前调用一次。
如果您需要从paintGL()之外的其他位置触发重绘(典型的示例是在使用计时器来动画场景时),您应该调用窗口部件的update()函数以安排更新。
当调用paintGL()、resizeGL()或initializeGL()时,您的窗口部件的OpenGL渲染上下文将变为当前上下文。如果您需要从其他位置调用标准的OpenGL API函数(例如在窗口部件的构造函数或自己的绘图函数中),您必须