setParent可以用来切换一个QWidget所对应的父窗口,因为Qt中所有的widget都是基于父子关系的,所以如果是布局在一个上面的,那么其子控件的parent应该是上层的QWidget,
这里特别要注意的是,setParent是有两个接口的,一个是setParent(QWidget *parent),一个是setParent(QWidget* parent, Qt::WindowFlags f),其中如果调用第一个参数的话,parent会重新设置窗口的标志位,如果希望保持原来的窗口标志位,则必须要指定一个参数。举一个简单的例子,如果你原来的窗口的标志位是Qt::Window|Qt::FramelesssWindowHint(一个自由窗体,不带边框),那么你需要将这个参数带到flags中,如果不指定的话,则会将其窗口属性修改为QWidget了(会跟父窗口合并,并且会将窗口的位置移动到(0,0)的位置。
本文详细介绍了Qt中setParent方法的功能及使用方法。通过该方法可以改变QWidget的父窗口,实现界面元素的灵活调整。文章特别强调了两种不同的setParent方法调用方式及其对窗口标志位的影响。

7488

被折叠的 条评论
为什么被折叠?



