Re: Changing a previously created GtkImage
- From: David Nečas (Yeti) <yeti physics muni cz>
- To: gtk-app-devel-list gnome org
- Subject: Re: Changing a previously created GtkImage
- Date: Wed, 12 Sep 2007 23:01:26 +0200
On Wed, Sep 12, 2007 at 01:52:43PM -0700, tsaud wrote:
I have created an image from a file using
image1 = gtk_image_new_from_file("pictures/Empty.gif");
gtk_widget_set_name (image1, "image1");
and displalyed it using:
gtk_widget_show(image1);
gtk_box_pack_start(GTK_BOX (hbox1), image1, TRUE, TRUE, 0);
and that works fine. The image is correctly displayed where I want it.
Later, when a particular event happens (right now I have assigned it to a
button press), I want to change the image to the image in the file
"pictures/Full.gif" (which is exactly the same size as Empty.gif). To do
that, I did the following:
void on_button1_pressed (GtkButton *button, gpointer user_data)
{
GtkWidget *imageptr;
imageptr = lookup_widget(GTK_WIDGET(button), "image1");
if(imageptr != NULL)
{
gtk_image_set_from_file(GTK_IMAGE(imageptr), "pictures/Full.gif");
}
else
fprintf(stderr, "image1 not found\n");
}
When I press the button, the image is replaced by a broken image icon, not
the new image. What am I doing wrong? I am obviously getting the correct
widget with the lookup_widget call, since the image changed. The file
"Empty.gif" and the file "Full.gif" are in the same directory, and when I
change the gtk_image_new_from_file() call to load the "Full.gif" file, that
works fine as well, so I know the file is there and readable. I just don't
understand why it didn't change to the new image.
Can't the working directory change meanwhile? Paths such as
"pictures/Full.gif" seem quite fragile to me.
1) Try g_file_test() to check whether "pictures/Full.gif"
exists as the time on_button1_pressed() is called.
2) Try to load the image with gdk_pixbuf_load() and look at
the error your obtain.
Yeti
--
http://gwyddion.net/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]