首页 > 解决方案 > 在小部件已经初始化后如何设置小部件的父级(例如,如果小部件是函数调用的参数)?

问题描述

我知道通常父母是通过在构造函数参数中给出的,例如,如果你想在框架内有一个按钮,你可以这样做:

QFrame frame = new QFrame();
QPushButton* button = new QPushButton(frame);

但是我已经有了想要作为子项添加到框架的按钮(它是在对我正在处理的函数的调用中作为参数接收的)。

有没有办法将已经存在的小部件作为子小部件添加到另一个小部件?或者将新的孩子添加到现有或不存在的父母?

标签: c++qt

解决方案


(免责声明:从通用汽车的评论中公然窃取的答案(经许可 - 见上文;))

简单的使用方法。QWidget's setParent(QWidget *parent)

注意:新的父级拥有所有权QWidget(即在父级被销毁时释放它等),您将需要show()再次调用小部件以使其可见,因为更改QWidget的父级变为不可见。


推荐阅读