关于qt:将一个小部件移动到另一个小部件中

move a widget into another widget

我正在使用TabWidget,允许用户将其标签"拖出"作为新的顶层小部件。(即,使标签可浮动)

当拖动选项卡时,我得到了内容(即目标小部件,我们称其为tar_widget)并删除了原始选项卡,然后构造了一个新的顶级小部件,将tar_widget放到新的布局中,然后将布局分配给新创建的小部件。

我希望将tar_widget显示在新建的小部件中,但实际上不显示。

我已经完成了QTabWidgetQTabBarQStackedWidget组成的作业,我还尝试过重置tar_widget的父级并删除它以前所属的布局,但是问题仍然存在存在。

我希望有人告诉我是否做错了事。


我终于注意到tar_widget是一个QGLWidget,这就是问题所在。

我了解到QGLWidget将附加一个openGL上下文,当我将其移至另一个小部件时,该上下文无法移至新的父小部件(在Windows上),如文档所述。

解决方案是使用虚拟小部件作为tar_widget的父级,并将该虚拟小部件移到另一个小部件中。