Qt 关于跳转页面后当前页面(委托delegate)数据丢失的问题
Posted 流若浅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 关于跳转页面后当前页面(委托delegate)数据丢失的问题相关的知识,希望对你有一定的参考价值。
这个是一个很低级的错误,之前po主急着完成任务,也是没注意看,窗口跳窗如下图所示:
这个过程中都是click促发槽然后B*pB,pB->show,同理A*pA,pA->show,这个过程中就出现了内存泄露,因为窗口是不停的new然后show,
就算当前是有数据的,但是new出了新窗口,旧的没有了,即旧的数据没有存在新的窗口上,因为嵌入式开发板子的内存不是很大,如果用长久时间,
这样的算法肯定炸了,下图是5分钟前后内存使用对比:
5分钟之前:
5分钟之后:
本身板子内存就不是很大,例如1G,五分钟吃100MB,暂且不说说句丢失【就算你保存文本然后在读取去解决】用不了一个小时,这个机器就因
内存耗尽而死机从而影响用户体验。
解决办法:
不用new出新指针,灵活去使用show跟hide,并且在析构函数中判断下,之前窗口的指针是否存在,存在就delete,以防内存泄露,初始化NULL。
所以这个需要多注意,不能由于急救忘记了这些重要的东西,虽然po主经常忘事。.......
技术在于交流,经验在于分享...来自流若浅。
以上是关于Qt 关于跳转页面后当前页面(委托delegate)数据丢失的问题的主要内容,如果未能解决你的问题,请参考以下文章
Qt/QML:在加载程序加载后访问 ListView 以跳转到特定项目/页面