qt 删除布局 和 重新设置setlayout

如何删除布局?如何重复setlayout?其实就是要解决,同一个布局里空间更新之后的显示问题。我直接修改layout显示重叠了。... 如何删除布局?
如何重复setlayout?
其实就是要解决,同一个布局里空间更新之后的显示问题。
我直接修改layout显示重叠了。
展开
 我来答
卫城wky
推荐于2017-11-26
知道答主
回答量:17
采纳率:100%
帮助的人:5.2万
展开全部
请问你做出来了吗?我现在也遇到这个问题。
找到方法了,放在这希望能帮到大家一点点吧。
int itemCount = layout()->count(); // layout是你前一个布局

for (int i = (itemCount - 1); i >= 0; --i) //从末尾开始是因为你删除会影响布局的顺序。例如你删掉第一个,后面的会往前移,第二就变成第一个,然后这时你要是++i的话,就是删掉原来布局里的第三个,这第二个被跳过了。

{

QLayoutItem *item = pathEdit->layout()->takeAt(i);

if (item != 0)

{

pathEdit->layout()->removeWidget(item->widget());

delete item->widget(); //(ps:如果是子控件不是QWidget,这里会出错,要注意)

}

}

delete pathEdit->layout();

接下来就是你自己重新new 的布局了,然后setLayout就行了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuanhuanzyc
2012-05-26
知道答主
回答量:13
采纳率:0%
帮助的人:9.4万
展开全部
我建议最好不要采用清除或删除,而是采用QStackedWidget/QStackedLayout,或者说采用不同的层来切换。这样思路就清晰多了。

如果硬要删除,可以考虑使用容器管理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiuzhangming
2012-05-16
知道答主
回答量:36
采纳率:0%
帮助的人:10.9万
展开全部
update ();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式