Gtk+, ansi c, problem z wyświetleniem obrazka na przycisku

0

Witam, mam problem z wyświetleniem obrazka na przycisku. Korzystam z funkcji gtk_button_set_image, lecz nie przynosi to zadnych rezultatow.

GtkWidget *image;
image = gtk_image_new_from_file( "obraz.jpg" );
button = gtk_button_new_with_label("k");
  gtk_button_set_image(button, image);

Po skompilowaniu program wyswietla przycisk z literka k, bez zadnego obrazka. Gdy chce wyswietlic obrazek nie na przycisku to sie wyswietla. Mozecie cos na to poradzic? Z gory dziekuje.
Pisze na windowsie 7, code:blocks 10,05
Wersja gtk : 2.24

0

Obrazek masz w katalogu z projektem?

0

Tak, mam. Problem juz rozwiazalem, wystarczylo dodac 3 dodatkowe linijki kodu:

g_type_class_unref(g_type_class_ref(GTK_TYPE_BUTTON));
  GtkSettings *default_settings = gtk_settings_get_default();
g_object_set(default_settings, "gtk-button-images", TRUE, NULL);
0

Hmm, dziwne. Ja raczej stawiam, że funkcja nie mogła znaleźć obrazka. Funkcja gtk_image_new_from_file należy do tych, które nie powinny być używane. Jej ułomność polega na tym, że nie można sprawdzić błędów przy odczycie obrazka. Ja używam następujących:

GtkWidget *obrazek;
GdkPixbuf *pixbuf;
GError *error = NULL;

 pixbuf = gdk_pixbuf_new_from_file( "obraz.png", &error );
 if ( pixbuf == NULL )
 {
    g_warning( "Nie można wczytać pliku: %s", error->message );
    g_error_free( error );
 }
 
 obrazek = gtk_image_new_from_pixbuf( pixbuf );
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1