I was trying to load a Glade layout into a GTK2 C code.
It consists of a window in which there is a VBox with 2 elements: a label and a button. I want to associate a signal to the button to close the application.
If I make all of this by using only C code it works fine, but when I load a layout I receive the following runtime error (the application starts but the button doesn't work):
(main:2581): GLib-GObject-WARNING **: 21:38:46.789: invalid (NULL) pointer instance (main:2581): GLib-GObject-CRITICAL **: 21:38:46.790: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed Here the code I used, mylayout.glade is a file in my project folder:
#include <gtk/gtk.h> void end_program (GtkWidget * wid, gpointer ptr) { gtk_main_quit(); return; } int main (int argc, char * argv[]) { GError * error = NULL; gtk_init(&argc, &argv); GtkBuilder * builder = gtk_builder_new(); if (0 == gtk_builder_add_from_file(builder, "mylayout.glade", &error)) { g_printerr("Error loading file: %s\n", error->message); g_clear_error(&error); return 1; } GtkWidget * win = (GtkWidget *) gtk_builder_get_object(builder, "window1"); GtkWidget * btn = (GtkWidget *) gtk_builder_get_object(builder, "button1"); g_signal_connect(btn, "clicked", G_CALLBACK(end_program), NULL); gtk_widget_show_all(win); gtk_main(); return 0; } The only thing I noticed is that if I remove the g_signal_connect() line the error disappear.
Any help is really appreciated.
NULL. If thatg_signal_connectcall causes these messages, thenbtnisNULL.