社区
项目管理
帖子详情
关闭窗口后内存未释放
xyzshift
2007-10-24 12:48:48
在MDI窗口中用opensheet打开CHILD窗口,当CHILD窗口关闭时,通过资源管理器查看,发现内存未释放,反复关闭、打开CHILD窗口,最后造成内存不足,打开窗口时数据窗口上显示空白,里面的数据显示不出来。未使用CREATE创建对象,窗口上所有的空间都是PB自带的,使用的是版本是9.02 7534,请教各位达人有没有解决办法啊!
...全文
208
11
打赏
收藏
关闭窗口后内存未释放
在MDI窗口中用opensheet打开CHILD窗口,当CHILD窗口关闭时,通过资源管理器查看,发现内存未释放,反复关闭、打开CHILD窗口,最后造成内存不足,打开窗口时数据窗口上显示空白,里面的数据显示不出来。未使用CREATE创建对象,窗口上所有的空间都是PB自带的,使用的是版本是9.02 7534,请教各位达人有没有解决办法啊!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xyzshift
2007-10-26
打赏
举报
回复
问题已发现,是框架调用一个动态连接库的问题,谢谢大家。
wzhfs
2007-10-25
打赏
举报
回复
不可能的事,你太不应该了,要学写程序!
xyzshift
2007-10-24
打赏
举报
回复
我也在怀疑是版本的问题,但是我在网上搜索了,没有说7534这个版本有这个问题的啊
zjoy
2007-10-24
打赏
举报
回复
???
照你说的情况,不应该会这样的,难道你的版本有问题??
AFIC
2007-10-24
打赏
举报
回复
使用变量也没什么问题,只是使用变量的时候
一般都回建个数组啥的存放引用,你看看有没有
如果你有耐心,tool->system option
选profiling,勾上enable tracing
下边只勾上object create /destruction
运行程序只开一次子窗就关,然后对比哪个create了没有destroy
zjoy
2007-10-24
打赏
举报
回复
能直接使用窗口名还是用窗口名的好,省得自己destroy
你用变量的话,需要自己destroy的
zzc0527
2007-10-24
打赏
举报
回复
我用的是8.0 ,没有发现你说的问题。
xyzshift
2007-10-24
打赏
举报
回复
对,使用的是变量
使用变量有什么后果吗?
AFIC
2007-10-24
打赏
举报
回复
使用GarbageCollect(),内存不变小,多半是你的问题
opensheet你直接用窗口名还是
window child
OpenSheet(child, "child_1", MDI_User, 4, Layered!)
xyzshift
2007-10-24
打赏
举报
回复
使用GarbageCollect(),内存不变小,使用DUBUG跟踪OBJECT IN MEMORY,关闭的窗口在里面已经没有了.
AFIC
2007-10-24
打赏
举报
回复
反复做几次关闭后
调用GarbageCollect()函数
内存缩小了,那就是pb的问题
内存没缩小,那就是你的问题(pb无法自动回收,尚有对该对象的引用存在)
或者你debug看object in memory自己判断
Qt局域网聊天工具
在上2次文章Qt学习之路_5(Qt TCP的初步使用) Qt学习之路_4(Qt UDP的初步使用) 中已经初步介绍了群聊功能和文件传输功能,这一节中主要在这个基础上加入一个私聊功能。 参考文献依旧是:《Qt及Qt Quick开发实战精解》一书中的第5个例子以及http://www.yafeilinux.com/ 网站上的源码。另外这次的私聊功能也是参考网友http://www.qtcn.org/bbs/read-htm-tid-32609.html的,他的程序有些bug,其中最严重的bug是当私聊第二次聊天的时候对方会接收不到信息。这次主要是将这个bug和其它一些小bug修补了,但是仍然有一个漏洞就是:当第二次私聊时,后面那个的发送方收到信息的时候有可能会多一个
窗口
弹出来。目前还找不到其原因。猜想是:在第一次聊天接收时
关闭
聊天
窗口
后,其
内存
没有
释放
。但是当
窗口
关闭
时我们觉得其
内存
释放
应该在Qt内部自己实现。
QT——
关闭
时
释放
内存
,解决父
窗口
关闭
子
窗口
没
关闭
的情况
//
关闭
时
释放
内存
this->setAttribute(Qt::WA_DeleteOnClose);
Qt-
窗口
Close()后自动
释放
空间
在进行一个四
窗口
项目,当第四个
窗口
显示结果后,若重新开始则close()结果页面后new第一个
窗口
发现不断的重新开始会导致
内存
占用越来越多 Qt
窗口
在Close()指令后调用CloseEven(),最后判断是否
关闭
若
关闭
,则Hide()
窗口
,并不是真正的
释放
内存
。若不
关闭
则不作任何操作 此时给
窗口
增加如下设置: setAttribute(Qt::WA_DeleteOnClose);...
QT5.9.0设置
窗口
在close时
释放
内存
一个注册
窗口
,用户
关闭
窗口
时便
释放
内存
ps:此方法仅能用于new的class,即在close时调用delete,对于直接定义的class不适用(需要在作用域结束时自动
释放
) void Widget::btn_register_clicked() { Register *reg_widget=new Register; reg_widget->setAttribute(Qt::WA_DeleteOnClose); reg_widget->exec();//或 reg_wi
winform
关闭
子窗体时彻底
释放
内存
关闭
子窗体时彻底
释放
内存
项目管理
794
社区成员
1,407
社区内容
发帖
与我相关
我的任务
项目管理
PowerBuilder 项目管理
复制链接
扫一扫
分享
社区描述
PowerBuilder 项目管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章