标题:堆栈之间的奇异区别?
作者:纹枰老妖
日期:2020-10-22 12:56
内容:
看上图,如果那个layout是我在堆中new出来的,那么程序显示结果是【开始】【停止】【退出】仨按钮从下到下依次排列。但现实中我是在栈中声明的QVBoxLayout对象,所以运行结果为什么只显示了最后的那个【退出】?如果说栈区的内存由于构造函数返回而变得不可知,那为何却能显示【退出】而没有前面两个?我就是想问问添加Layout的原理,有懂的朋友稍微说一下吗?
#1 [笑颜 10-22 13:58]
layout布局大部分是依赖事件的,也就是一般在你出了这个函数之后才会去布局。而你是栈对象,出函数就销毁了,所以根本不会触发布局,三个按钮默认的位置就是一样的,Z序应该和你add的顺序一致
#2 [clickto 10-22 20:23]
楼上正解。
所以,在qt中,涉及到界面的地方就大胆地new吧,只要确保有父窗口就行