QT开发中,继承于QopenGLWidget类的视频窗口,为什么会导致QDockWidget类的父窗口白屏无法绘制?

求大佬指点迷津!!折磨我好久了,没办法解决了,头绪都没有

图片说明图片说明

如图所示,在QDockWidget父类窗口停靠时,功能一切正常。4个窗口的类型
为QGLYuv420Widget,继承方式如下:
class QGLYuv420Widget : public QOpenGLWidget, protected QOpenGLFunctions。
问题描述:
1、当QDockWidget父类窗口漂浮起来,就白屏了。
2、隐藏4个窗口,再漂浮,不会白屏
3、在main函数中,QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL),改为QCoreApplication::setAttribute(Qt::AA_UseOpenGLES),漂浮状态没有问题,不过视频窗口无法工作。

尝试设置QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);

142. 在停靠窗体QDockWidget和QOpenGLWidget同时使用的时候,从嵌入状态切换到浮动状态或者浮动状态切换到嵌入状态,QOpenGLWidget的上下文会被打乱导致白屏失效,需要在main函数中开头位置设置下共享OpenGL上下文。
```cpp
int main(int argc, char *argv[])
{
    //需要设置共享上下文不然停靠窗体从正常到浮动后QOpenGLWidget窗体会失效
#if (QT_VERSION > QT_VERSION_CHECK(5,4,0))
    QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
#endif
    QApplication a(argc, argv);
    ...
}
```