Qt 想删除一个layout和layout内的部件,再重新摆部件,该用什么方法呢?

Qt 想删除一个layout和layout内的部件,再重新摆部件,该用什么方法呢?,第1张

你先delete该layout,然后重新new一个。例如:QLayout *layout=new QLayout

layout->addWidget(部件名)如果你是在ui界面下,直接删除就ok啦!希望能帮到你!

请问你做出来了吗?我现在也遇到这个问题。

找到方法了,放在这希望能帮到大家一点点吧。

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就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11627548.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存