Здравствуйте! Пытаюсь разобраться с азами GTK+, и застопорился на следующем:
Набросал в Anjuta простое приложение на Gtk+ и C, состоящее из окна, в котором контейнер-таблица, в таблице - кнопка и надпись. Пробую по нажатию кнопки изменить надпись. Исходный код такой:
[code] void on_button1_clicked (GtkButton *self, gpointer user_data) { GtkWidget *toplevel = gtk_widget_get_toplevel(GTK_WIDGET(self)); if (GTK_WIDGET_TOPLEVEL (toplevel)) g_print("\n\nToplevel found, it's name is: %s \n",gtk_widget_get_name(toplevel)); GtkWidget *lab = lookup_widget(GTK_WIDGET(toplevel), "lbl"); gtk_label_set_text(GTK_LABEL(lab), "Some label"); } [/code]
Собирается нормально, но при выполнении функция lookup_widget не находит виджет lbl, получаю сообщения:
WARNING **: Widget not found: window (gtk_foobar:14066): Gtk-CRITICAL **: gtk_label_set_text: assertion `GTK_IS_LABEL (label)' failed
При этом toplevel находится нормально, и его имя g_print'ом выводится. Куда копать?
Заранее благодарю.