Как программно добавить виджет в контейнер, созданный из GtkBuilder? - PullRequest
1 голос
/ 02 апреля 2010

Я создал окно, в котором есть несколько контейнеров и виджетов, и я хочу динамически добавить новый виджет во время выполнения к одному из Vbox в этом окне. Итак, у меня есть этот код, который вызывает окно:

gtk_builder_add_from_file( g_builder, "window.xml", NULL );
mainwindow = GTK_WIDGET( gtk_builder_get_object( g_builder, "window" ));
gtk_widget_show( mainwindow );

Затем я, например, создаю новую метку и добавляю ее в один из существующих Vbox с именем "vbox_mid", например:

label = gtk_label_new( "Test label" );
vbox = GTK_WIDGET( gtk_builder_get_object( g_builder, "vbox_mid" ));
gtk_box_pack_end( GTK_BOX( vbox ), label, TRUE, TRUE, 0 );

Но, похоже, это не работает. Я не вижу новый ярлык в vbox. У меня такое ощущение, что я что-то здесь упускаю, но не вижу, что это такое. Я подумал, что, возможно, был специальный вызов GtkBuilder для динамического добавления виджета, но я не вижу ничего похожего на это. Я был бы очень признателен за любую помощь в этом.

1 Ответ

3 голосов
/ 02 апреля 2010

Вы не забыли показать свой ярлык после добавления?

...