找回密码
 立即注册
收起左侧

QWidget 组合控件 放到 QGridLayout 删除和增加时,偶然出现异常

1
回复
1420
查看
[复制链接]

尚未签到

来源: 2023-2-7 16:38:24 显示全部楼层 |阅读模式
1Qter豆

QWidget里面放了很多元素,形成一个组合控件,在GridLayout中删除全部QWidget元素,然后再重新加载新的QWidget组合控件时,偶尔会出现删除失败,然后弹出很多QWidget窗口在桌面,本质上应该是新QWidget没有添加到QGridLayout,以独立窗口形式,显示在桌面了。这个问题困扰了很久,希望有碰到的大佬能给点思路或解决方案。

删除GridLayout全部控件用的代码:

回复

使用道具 举报

尚未签到

2023-2-7 16:42:13 显示全部楼层
本帖最后由 jr-qt 于 2023-2-7 16:44 编辑

QLayoutItem *child;     
while ((child = m_gridLayout->layout()->takeAt(0)) != 0)   
{         
               if(child->widget())         
               {            
                       m_gridLayout->removeWidget(child->widget());            
                       child->widget()->setParent(NULL);        
                }         delete child;     
}

新增QWdiget控件到GridLayout用的就是 addWidget 方法。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了