Qt:在保留 child 的同时删除 parent 小部件?

Qt: Delete parent widget while retaining the child?

我有一个显示 child 小部件的 Qt parent 小部件。

我需要删除 parent 小部件。

我可能(或不)稍后将 child 附加到不同的 parent 并将其显示在新容器中。

我在删除第一个 parent 时无法访问第二个 parent。

我该怎么做?

首先使用QWidgethide()setVisible(false)方法隐藏子控件。然后使用 setParent(nullptr) 使子窗口小部件没有父窗口小部件,这使其成为顶级窗口小部件 window,这就是您需要先隐藏它的原因。

要稍后重新使用该小部件,请将其添加到适当的新布局,同时将其设置为父级。你也需要为它调用它的 show()setVisible(true) 方法,否则它会保持隐藏状态。