• 2097阅读
  • 2回复

[提问]堆栈之间的奇异区别? [复制链接]

上一主题 下一主题
离线纹枰老妖
 

只看楼主 倒序阅读 楼主  发表于: 2020-10-22
— 本帖被 圣域天子 从 Qt安装与发布 移动到本区(2020-10-23) —


看上图,如果那个layout是我在堆中new出来的,那么程序显示结果是【开始】【停止】【退出】仨按钮从下到下依次排列。但现实中我是在栈中声明的QVBoxLayout对象,所以运行结果为什么只显示了最后的那个【退出】?如果说栈区的内存由于构造函数返回而变得不可知,那为何却能显示【退出】而没有前面两个?我就是想问问添加Layout的原理,有懂的朋友稍微说一下吗?
离线笑颜

只看该作者 1楼 发表于: 2020-10-22
layout布局大部分是依赖事件的,也就是一般在你出了这个函数之后才会去布局。而你是栈对象,出函数就销毁了,所以根本不会触发布局,三个按钮默认的位置就是一样的,Z序应该和你add的顺序一致
离线clickto

只看该作者 2楼 发表于: 2020-10-22
楼上正解。
所以,在qt中,涉及到界面的地方就大胆地new吧,只要确保有父窗口就行
快速回复
限100 字节
 
上一个 下一个