如何动态删除QGridLayout里的控件

如何动态删除QGridLayout里的控件,第1张

可以的。有2中方式:

1、动态添加的时候为组件设置id,删除的时候根据id查找到对应组件,然后删除

2、根据父节点,获取所有父组件下的子组件,然后依次删除。

示例:

protected View createView() {//动态添加组件

Button btn = new Button(this)//动态创建按钮

btn.setId(index++)

btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT))

btn.setText("aaaaaa" + index)

return btn

}

private void removeView() {//动态删除组件(按钮)

//获取linearlayout子view的个数

int count = linearLayout.getChildCount()

//研究整个LAYOUT布局,第0位的是含add和remove两个button的layout

//第count-1个是那个文字被置中的textview

//因此,在remove的时候,只能 *** 作的是0<location<count-1这个范围的

//在执行每次remove时,我们从count-2的位置即textview上面的那个控件开始删除~

if (count - 2 >0) {

//count-2>0用来判断当前linearlayout子view数多于2个,即还有我们点add增加的button

linearLayout.removeViewAt(count - 2)

}

}

如果是用纯手写代码来添加的,那么恐怕需要你自己从源代码找出所有使用过这个控件的地方逐个删掉。 如果你是用qt designer或者qt creator的设计模式添加的控件,直接把它“拉走”就可以了。


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

原文地址: http://outofmemory.cn/bake/11928190.html

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

发表评论

登录后才能评论

评论列表(0条)

保存