• 371阅读
  • 2回复

Qt 新视窗控件添加图片,关闭后内存清理不完全 [复制链接]

上一主题 下一主题
离线karta53521
 

只看楼主 倒序阅读 楼主  发表于: 2023-12-31
想请问各位,最近使用Qt遇到一个memory的问题

简单做了一个测试 如下:
我有两个页面,主页面只有一颗QPushButton,按下后弹出第二个页面
我在第二个页面做了好几个按钮
按钮使用了setIcon(QIcon(path))帮按钮添加图片
在开头的地方有添加WA_DeleteOnClose
每颗按钮也有设定好父类别
但是当我把第二页关闭的时候,记忆体并没有回到只有一页时的大小 请问这是什么原因呢?
虽然关闭第二个视窗时的确有清掉记忆体,但只有清掉一点点而已
例如:
刚开启程式时-10M
点击按钮弹出第二页-20M
关闭第二页15M
再次开启第二页-20M
关闭第二页-15M

始终回不了原来的10M
离线snow_man_0

只看该作者 1楼 发表于: 2023-12-31
不用担心这个问题
Qt的机制是parent来管理内存。未交给parent的内存注意释放就行
开启10个页,再关掉9个,可能内存占用还是15M,不会线性增加
离线karta53521

只看该作者 2楼 发表于: 2023-12-31
回 snow_man_0 的帖子
snow_man_0:不用担心这个问题
Qt的机制是parent来管理内存。未交给parent的内存注意释放就行
开启10个页,再关掉9个,可能内存占用还是15M,不会线性增加 (2023-12-31 04:05) 

页面越多会占用越多,假设我有第三个页面,我三个页面全开后
将第二第三页关闭只剩初始页面时,内存可能变成17可能变成20
目前测试下来是只要新页面有加图片就会有这个情形发生

虽然不会因为开关页面造成记忆体持续上升,但关闭后没有清空也是让我很苦恼
我嵌入式开发版内存会不够

另外问一下,有人使用Qt是只用一页用绘图的方式不断更新页面状态的写法吗
假如用这种写法的确不用担心我原文遇到的问题
但逻辑上要切换页面,跟一些事件处理是不是会变得很复杂
好奇有没有人为了节省内存而这样写的
因为我目前的专案最多可能会有5个页面切换,只在一页用绘图的方式感觉不好处理啊
快速回复
限100 字节
 
上一个 下一个