[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-gtk-general
Subject:    [PHP-GTK] solved: GtkVBox: How to delete widgets?
From:       "Sebastian G." <mailseppel () gmx ! de>
Date:       2002-02-26 9:50:53
[Download RAW message or body]

Sebastian G. wrote:
> > I have a GtkVBox with a number of labels in it. I need to change the
> > number of the labels in that box depending on what data I am collecting.
> > -> How can I delete all the labels in that GtkVBox like I do reset a
> > GtkCTree with
> > | $ctree -> clear();

Christoph Muehlmann wrote:
> I think there is no function like that, but you can make your own:
> 
> create an new Class like myGtkVBox which extends GtkVBox with a function
> clear(). In this function you can use the Array containing the childs of
> the GtkVBox ($gtkvbox->children) and the remove()-function of the
> parent-parent-class of GtkVBox (GtkContainer is parent of GtkBox is p. of
> GtkVBox)

Alan Knowles wrote:
> have a look at the container::children()
> | $array = $vbox->children()
> | for ($i=0;$i<count($array);$i++) {
> |    $vbox->remove($array[$i]);
> |    $array[$i]->destroy();
> | }
> then you can just add back to the vbox

Hi folks,

well, I finally understood how this works. You people are quiet in this
material, huh? :)
Here is what I did:
| $label_status = &new GtkLabel();
| $hbox_status = &new GtkHBox();
| $vbox_status_collector = &new GtkVBox();
| 
| function init_status() {
| 	global $vbox_status_collector,
| 	       $hbox_status, $label_status;
| 
| 	foreach ($vbox_status_collector -> children() as $box) {
| 		$vbox_status_collector -> remove($box);
| // We don't actually want to delete that widget, cause we still might
need it
| //		$box -> destroy();
| 	}
| 
| 	$label_status -> set_text("Status-text 1");
| 	$hbox_status -> pack_start($anlagen_label);
| 	$box_anlagen -> pack_start($hbox_status);
| 	$box_anlagen -> show();
| }
Well, this still isn't working, it says
| Gtk-CRITICAL **: file gtkbox.c: line 332 (gtk_box_pack_start):
assertion `child->parent == NULL' failed
, but I think it's because I use the same $label_status and $hbox_status
over and over again. If you'd like, you might tell me how to copy
widgets, cause I can't find that information in the manuals of phpGTK
and GTK+.

-- MfG, Sebastian G. <: mailseppel@gmx.de : germany-HH :>

-- 
PHP-GTK General Mailing List (http://gtk.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic