布局重定义父部件问题

布局重定义父组件问题

将一个组件加入到一个布局中时,Qt会自动设置这个组件的父组件。这一点Qt官方文档中有详细的描述。

在这里插入图片描述

粗浅翻译如下,原文在此。

当你使用layout时,就不需要在创建子组件时指定父组件了。Qt的layout会自动的为子组件重新定义父组件(使用QWidget::setParent())。父组件即为安装了layout的组件。

Note: layout中组件的父组件是安装了layout的那个组件,而不是layout。组件只能以组件作为父亲,而不能以layout作为父亲。

你可以使用addLayout()将一个layout放入另一个。里面的layout就会是外面layout的孩子。

这实为一个小知识点,但是还是需要注意。因为这个重定义父组件也会使本不打算指定任何父组件的组件,拥有一个父组件。而如果不能及时了解这个知识点,那么在DEBUG时会较为麻烦。

总结:

  • 使用setLayout()函数,会将布局中所有组件的父组件重设。
  • 重设的父组件是安装布局的组件,而不是布局。
  • addLayout()可以将布局作为孩子放到布局中。

如果帮助到您,还希望您点赞、评论、收藏。

如有更加简介明了的翻译,还请留言至评论区,我会修改并注明出处。

非常感谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值