我正在尝试制作一个使用QGLWidgets的多线程Qt应用程序,但我一直收到这个错误。(我正在尝试使用QPainter从另一个线程进行绘制)
而且它看起来也像是我有一个巨大的内存泄漏,因为它
错误为"QGLContext::makeCurrent():wglMakeCurrent失败:操作成功完成"
我认为这与这里描述的Qt邮件列表中的一个相当旧的问题有关。简而言之,如果调用makeCurrent()的线程不等于检索设备上下文的线程,则调用GetDC()。正如链接线程中所概述的,问题是没有相应地调用ReleaseDC(),导致句柄泄漏,并触发Windows在某个时候在对GetDC()的调用中返回NULL,这使得wglMakeCurrent()失败。然而,我不知道为什么GetLastError()在这种情况下声称"操作成功完成"。