• 7454阅读
  • 9回复

清空GroupBox内的按钮 [复制链接]

上一主题 下一主题
离线zhenwoln
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-09
请问怎么清空groupbox内的所有按钮?
我实现的功能是这样的:左边部几个按钮,点击按钮,会在右边groupbox里显示几个按钮,点击另外的按钮,groupbox里显示的不同的内容。我现在可以实现显示不同的内容了,但是还存在一个问题,那就是上次显示的内容还是存在,现在显示的只是把上次的覆盖掉了,要是覆盖不完全,还是会显示出上次的内容。
所以我想问下有没有这样的函数,可以使groupbox的内容全部删除?
谢谢!
[ 此帖被zhenwoln在2009-04-10 15:45重新编辑 ]
离线zhenwoln

只看该作者 1楼 发表于: 2009-04-09
没有人在吗?
离线lugaideath

只看该作者 2楼 发表于: 2009-04-09
不明白你说什么!清空什么按钮?
离线zhenwoln

只看该作者 3楼 发表于: 2009-04-09
谢谢!就是将groupbox中插入的按钮删除,也不一定是按钮,就是想删除groupbox中的所有内容
离线duduqq

只看该作者 4楼 发表于: 2009-04-09
全部hide()就不显示了啊
离线zhenwoln

只看该作者 5楼 发表于: 2009-04-10
我想要的删除。我是这样的:我实现的功能是这样的:左边部几个按钮,点击按钮,会在右边groupbox里显示几个按钮,点击另外的按钮,groupbox里显示的不同的内容。我现在可以实现显示不同的内容了,但是还存在一个问题,那就是上次显示的内容还是存在,现在显示的只是把上次的覆盖掉了,要是覆盖不完全,还是会显示出上次的内容。
所以我想文下有没有这样的函数,可以使groupbox的内容全部删除
谢谢!
离线dayong419
只看该作者 6楼 发表于: 2009-04-11
上面说的对,没有Hidden
影藏就好了
要删的话删掉就是咯
离线318065268
只看该作者 7楼 发表于: 2009-04-11
Qt不会自动将那些部件隐藏或者重绘,需要手工实现。
要想关闭所有之前创建的子部件只能将所有的子部件的close或者hide槽连接到父部件的一个信号上,即一个信号连接到多个槽。然后在你进入到该父部件的时候发射该信号。
close或者hide的方式不会自动删除这些子部件,反复的操作将导致内存泄漏。建议采用close槽,然后进行这样的设置:this->setAttribute ( Qt::WA_DeleteOnClose );  即在close的同时自动删除该部件,这样就不会内存泄漏了。
Email  rsail@126.com(私人邮箱)
QQ:   318065268
离线zhenwoln

只看该作者 8楼 发表于: 2009-04-11
非常感谢,楼上的能不能说的详细点,我现在刚接触QT没多久,还必是很明白你的意思
离线318065268
只看该作者 9楼 发表于: 2009-04-12
close()和hide()是槽函数,物件自带的。
进入后要发射的信号应该是自定义的信号。
用connect将这个信号和所有子部件的close()连接起来就行了。
然后就是在你进入的时候有个判断,如果进入就发射信号。
this->setAttribute ( Qt::WA_DeleteOnClose ); 这个设置是为了在close()的时候自动删除该子部件,这样才是你想要的效果。
Email  rsail@126.com(私人邮箱)
QQ:   318065268
快速回复
限100 字节
 
上一个 下一个