查看完整版本: [-- 堆栈之间的奇异区别? --]

QTCN开发网 -> Qt基础编程 -> 堆栈之间的奇异区别? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

纹枰老妖 2020-10-22 12:56

堆栈之间的奇异区别?

[attachment=21981]

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

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

clickto 2020-10-22 20:23
楼上正解。
所以,在qt中,涉及到界面的地方就大胆地new吧,只要确保有父窗口就行


查看完整版本: [-- 堆栈之间的奇异区别? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled