Qt:在保留子窗口小部件的同时删除父窗口小部件?
我有一个显示子窗口小部件的Qt父窗口小部件 我需要删除父窗口小部件 稍后,我可能(或不可能)将子对象附加到另一个父对象,并将其显示在新容器中 删除第一个父级时,我没有访问第二个父级的权限Qt:在保留子窗口小部件的同时删除父窗口小部件?,qt,qwidget,qobject,Qt,Qwidget,Qobject,我有一个显示子窗口小部件的Qt父窗口小部件 我需要删除父窗口小部件 稍后,我可能(或不可能)将子对象附加到另一个父对象,并将其显示在新容器中 删除第一个父级时,我没有访问第二个父级的权限 如何执行此操作?首先使用QWidget的hide()或setVisible(false)方法隐藏子小部件。然后使用setParent(nullptr)使子窗口小部件没有父窗口,这使它成为顶级窗口,这就是为什么需要先隐藏它 要在以后重新使用小部件,请将其添加到适当的新布局中,这也会将其设置为父级。您需要为它调用其
如何执行此操作?首先使用QWidget的
hide()
或setVisible(false)
方法隐藏子小部件。然后使用setParent(nullptr)
使子窗口小部件没有父窗口,这使它成为顶级窗口,这就是为什么需要先隐藏它
要在以后重新使用小部件,请将其添加到适当的新布局中,这也会将其设置为父级。您需要为它调用其
show()
或setVisible(true)
方法,否则它将保持隐藏状态。您是否尝试在子小部件上调用QWidget::setParent(nullptr)
?您应该为这个小部件创建一个getter,或者将小部件本身传递给构造函数,这样您就已经拥有了对象范围之外的getter。