Here a little program which is able for running: a window with gtk_button_new_from_icon_name. You can change the path or the icon name, you see here always no icon! /* --------------------------------------------------------------------*/ #include <gtk/gtk.h> void program_end(GtkWidget *window) { gtk_widget_destroy(window); gtk_main_quit(); } int main (int argc, char *argv[]) { GtkWidget *window; GtkWidget *button; gtk_init (&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window),"Iconbuttontest"); gtk_window_set_default_size(GTK_WINDOW(window),200,50); gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER_ALWAYS); g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(program_end),NULL); //button = gtk_button_new_from_icon_name("/usr/local/share/pixmaps/anjuta/anjuta-breakpoint-enabled-16.png",GTK_ICON_SIZE_BUTTON); button = gtk_button_new_from_icon_name("/usr/share/icons/Adwaita/16x16/actions/process-stop.png",GTK_ICON_SIZE_BUTTON); g_signal_connect_swapped (G_OBJECT(button),"clicked", G_CALLBACK(program_end),G_OBJECT(window)); gtk_container_add(GTK_CONTAINER(window),button); gtk_widget_show_all(window); gtk_main (); return 0; }