qt删除已有布局

删除已有布局

  • 实现删除已有的界面布局,方便动态更新界面

主要思路

  • 遍历布局,判断每一个item的类型:widget就直接删除,布局的话就先删除布局内的widget,其余类型都直接移除。

  • 注意:这里没有考虑那种复杂的布局嵌套情况。需要考虑的可以自行修改(递归形式)。

  • widget的父控件需要先置空(参考网上的教程,没有测试)。

      void ClearLayout()
      {
      	while(m_pMainLayout->count())
      	{
      		QWidget *pWidget=m_pMainLayout->itemAt(0)->widget();
      		if (pWidget)
      		{
      			pWidget->setParent (NULL);
    
      			m_pMainLayout->removeWidget(pWidget);
      			delete pWidget;
      		}
      		else 
      		{
      			QLayout *pLayout=m_pMainLayout->itemAt(0)->layout();
      			if (pLayout)
      			{
      				while(pLayout->count())
      				{
      					QWidget *pTempWidget=pLayout->itemAt(0)->widget();
      					if (pTempWidget)
      					{
      						pTempWidget->setParent (NULL);
    
      						pLayout->removeWidget(pTempWidget);
      						delete pTempWidget;
      					}
      					else
      					{
      						pLayout->removeItem(pLayout->itemAt(0));
      					}
      				}
      			}
    
      			m_pMainLayout->removeItem(m_pMainLayout->itemAt(0));
      		}
      	}
      }
    
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值