(原始链接:http://drangon.org/blogex/?e=5 转载保留)


QT里面的layout设置


layout是一种自动布局的方法,但layout本身不是widget,因此在designer里面,添加一个layout时,实际是会添加一个隐藏的widget,再设置layout。


因此如果要设置一个顶级窗口(如QForm、QDialog)的layout时,不要拖放一个layout对象,而是应该在“对象查看器”中,点击相应的顶级窗口,右键菜单中的“布局”子菜单,选择相应的布局方法,需要窗口里面有其他对象才能执行。


我的补充:

这样实现的顶层layout,可以随顶级窗口大小自动变化大小。

如果编辑时忘了这一点,手工拖放了一个layout作为顶层layout,也不要紧,若顶级窗口如QDialog下属的layout只有一个(其余所有layout和widget都从属于它),可以在完成其余布局后,点击相应的顶级窗口,右键菜单中的“布局”子菜单,选择相应的布局方法,qt会自动匹配,把手工拖放的转为自动的顶层layout,实现一样的效果。