Gracias!

Lo solucione haciendo : this->set_image(*(new Gtk::Image(dirImagen));
siendo "this" una clase que hereda de button.

Lo que me mandaste no me anduvo ya que el 'get_image' devolvía NULL...
posiblemente por estar usando glade y una clase que heredaba de button.

(Estoy usando windows y Visual Studio 2005)


Saludos,
Claudia.

El día 26/11/07, Leandro Lucarella <[EMAIL PROTECTED]> escribió:
>
> Claudia Aguirre, el 26 de noviembre a las 12:48 me escribiste:
> >    Hola,
> >
> >    Lo probe haciendo:
> >
> >    Gtk::Widget *widget = new Gtk::Image("Recursos\\salidaPacman.PNG");
> >    this->add(*widget);
> >    this->show();
> >
> >    siendo 'this' un Gtk::button. Pero me muestra un warning diciendo que
> ya
> >    posee una imagen (lo cual es verdad ) . Entonces supongo debo
> eliminarle
> >    esa imagen para poder colocarle una nueva.
> >
> >    "gtk --WARNING: Attempting to add a widget with type gtkmm__GtkImage
> to a
> >    gtkmm__GtkButton, but as a GtkBin subclass a gtkmm__GtkButton can
> only
> >    contain one widget at a time; it already contains a widget of type
> >    gtkmm__GtkImage"
> >
> >    Todavia no encontre exactamente como borrarlo. Pense en algo como:
>
> Tal vez no tengas que borrarlo :)
>
> >    Gtk::Widget *imagenVieja =this->get_image();
> >    imagenVieja->_destroy_c_instance();
>
> Es MUY raro que quiera hacer eso. Meterse con la API de C significa hacer
> cosas muy nasty.
>
> >    pero lanza este error:
> >    'Gtk::Object::_destroy_c_instance' : cannot access protected member
> >    declared in class 'Gtk::Object'
>
> Y lo bien que hace ;)
>
> >    No se si estoy haciendo las cosas en forma correcta... la verdad
> probe
> >    varias cosas para poder cambiar la imagen desde el codigo...
>
> Estuve revisando un poco la referencia[1] (que es tu amiga) y lo que tenés
> que usar es gtk_image_set_from_file()[2] (o su contraparte[3] gtkmm),
> previo obtener la imagen del botón con gtk_button_get_image()[4] (o su
> contraparte[5] gtkmm).
>
> Te adjunto un ejemplo (basado en [6]) que cambia la imagen al apretar el
> botón. El ejemplo usa gtk_image_set_from_stock() pero la idea es
> exactamente la misma.
>
> En windows tendrás que ingeniártelas para compilarlo vos (por el archivo
> que querés arbrir asumo que estás en windows =), pero si tuvieras un Linux
> a mano podés usar:
> gcc -Wall -g `pkg-config --cflags --libs gtk+-2.0` -o boton boton.c
>
> [1] http://library.gnome.org/devel/gtk/unstable/index.html
> [2]
> http://library.gnome.org/devel/gtk/unstable/GtkImage.html#gtk-image-set-from-file
> [3]
> http://gtkmm.org/docs/gtkmm-2.4/docs/reference/html/classGtk_1_1Image.html#ac6da118aed4ade08b2a4556bf8ee508
> [4]
> http://library.gnome.org/devel/gtk/unstable/GtkButton.html#gtk-button-get-image
> [5]
> http://gtkmm.org/docs/gtkmm-2.4/docs/reference/html/classGtk_1_1Button.html#05d38d982c358af37e66eb6f0dd62640
> [6] http://www.fi.uba.ar/materias/7542/ejemplos/gtk+/boton.c
>
>
> --
> Leandro Lucarella (luca) | Blog colectivo:
> http://www.mazziblog.com.ar/blog/
>
> ----------------------------------------------------------------------------
> GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
>
> ----------------------------------------------------------------------------
> 1950 we were 3 billion people on the earth,
> today we are 6 billion people
>
> _______________________________________________
> Lista de correo Programacion.
> [email protected]
> http://listas.fi.uba.ar/mailman/listinfo/programacion
>
>
>
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a