The following code can demonstrate this leak:
Run this program in debug mode (Press F5), and you can see memory leak report at exit.
The leaked object is QOpenGLContextGroup object. Since QOpenGLContextGroup object
is desgned to be destroyed by deleteLater(), but this method will not always work due to the fact
that in many cases event loop will exit before the deferred deletion of the QOpenGLContextGroup
object is queued. As we can see in the above program, the event loop will exit before QGLWidget object's
destruction. This will cause the QOpenGLContextGroup object hold by QGLWidget object never been deleted.