【Qt5】Qt QWidget立刻出现并消失
【Qt5】Qt QWidget立刻出现并消失
qq_43478653
于 2022-06-11 10:32:03 发布
阅读量885
收藏
点赞数
CC 4.0 BY-SA版权
分类专栏:
C/C++
文章标签:
qt
开发语言
c++
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43478653/article/details/125232033
C/C++
专栏收录该内容
17 篇文章
订阅专栏
本文探讨了在Qt环境中,使用栈上和堆上创建对象的区别。栈上对象在函数执行完毕后会自动销毁,而堆上对象则需要手动管理其生命周期,不设置父对象可能导致内存泄露。智能指针在函数结束时也会销毁其所指向的对象,因此不适合在这种场景下使用。
摘要生成于
C知道
,由 DeepSeek-R1 满血版支持,
前往体验 >
解决方案:
如果采用栈上生成对象的方式,即QWidget w。函数执行完后对象自动销毁,自然也就没有了。除非在父函数内生成或作为类成员记录,以让子函数结束后对象不自动销毁。如果采用堆内存分配对象的方式,即QWidget* w = new QWidget。函数执行完后对象不会自动销毁,在不设置widget的parent的情况下(设置后widget不会单独出现),应该是不会消失的,但要小心内存泄露的问题。注意,这里采用智能指针如sharedptr还是不可以,因为函数体结束后,智能指针对象销毁,伴随着堆上分配的对象的同时销毁,可以采用方法1的方式进行解决。
iOS系统省电应关闭设置!
柒的拼音、柒怎么读?三点水加七加木(㲺木)念什么?