• 5713阅读
  • 4回复

QTabWidget标签页删除问题 [复制链接]

上一主题 下一主题
离线nanzsn
 
只看楼主 倒序阅读 楼主  发表于: 2013-07-28
新建了一个QTabWidget对象,然后调用了addTab添加了几个标签页,每次添加一个标签页,内存使用就会有所增长,但是我关闭标签页后,内存使用并不会因此而减少,不知道为什么,求高人指点,怎样才能在响应关闭时,彻底关闭标签页所对应的窗体。
信号关联为:
connect(this,SIGNAL(tabCloseRequested(int)),this,SLOT(closeTab(int)));
响应关闭的槽为:void TabWidget::closeTab(int index)
{  
     QWidget * currenttabwidget = widget(index);  
     currenttabwidget->close();//已经设置了currenttabwidget属性为setAttribute(Qt::WA_DeleteOnClose,true);  
     removeTab(index);
}
离线pxiao_xiao

只看该作者 1楼 发表于: 2013-07-28
delete 呢?
离线nanzsn
只看该作者 2楼 发表于: 2013-07-28
回 1楼(pxiao_xiao) 的帖子
delete也试过了,也是没有效果的,这个应该不是内存泄露问题,现在就是问题是,如果我经常打开心得标签页,内存就一直增长,也不知道会不会到一定时间自动收回?
离线jdwx

只看该作者 3楼 发表于: 2013-07-28
回 2楼(nanzsn) 的帖子
在currenttabwidget->close();之后增加下面的一行
currenttabwidget->deleteLater();彻底从内存里删除
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线nanzsn
只看该作者 4楼 发表于: 2013-07-28
回 3楼(jdwx) 的帖子
好像没啥效果。是不是removeTab(int index)只能删除标签,但是标签对应的窗体却没有删除,仍然留在内存里呢?
快速回复
限100 字节
 
上一个 下一个