qt布局 setlayout无效

本文介绍在Qt中遇到使用setLayout无效的问题,原因是UI文件自带布局,需先清除原有布局。提供clearLayout方法,递归删除所有子布局与小部件,确保新布局正确应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作步骤:qt生产带ui的界面文件中使用setlayout无效

原因分析:ui文件默认带有layout,需要删除之后再设置setlayout才可用

删除方法可参考如下:(qt帮助手册有)

void clearLayout(QLayout* layout)

{

        QLayoutItem* child;

        while (0 != (child = layout->takeAt(0)))

        {

                if (auto w = child->widget())

                 {

                            if (w->layout())

                            {

                                       clearLayout(w->layout());

                              }

                              delete w;

                    }

                    if (auto l = child->layout())

                    {

                               clearLayout(l);

                     }

                      delete child;

               }

     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值