Я хочу изменить заголовок элемента переключателя стека.
Вот фрагмент из структуры GUI:
<child>
<object class="GtkStack" id="stack1">
<property name="width_request">100</property>
<property name="height_request">80</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkFixed" id="f1">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="name">page2</property>
<property name="title" translatable="yes">c</property>
</packing>
</child>
<child>
<object class="GtkFixed" id="f2">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="name">page1</property>
И это код:
GtkWidget *window;
GtkWidget *fixed1;
GtkBuilder *builder;
GtkAdjustment *adjustment1;
GtkWidget *b1;
GtkWidget *b2;
GtkWidget *b3;
GtkWidget *b4;
GtkWidget *f1;
GtkWidget *f2;
GtkWidget *f3;
GtkWidget *f4;
GtkWidget *stack1;
GtkWidget *stkSw;
int display = 4;
int main(int argc, char *argv[]) {
gtk_init(&argc, &argv); // init Gtk
//---------------------------------------------------------------------
// establish contact with xml code used to adjust widget settings
//---------------------------------------------------------------------
builder = gtk_builder_new_from_file ("scroll.glade");
window = GTK_WIDGET(gtk_builder_get_object(builder, "window"));
fixed1 = GTK_WIDGET(gtk_builder_get_object(builder, "fixed1"));
b1 = GTK_WIDGET(gtk_builder_get_object(builder, "b1"));
b2 = GTK_WIDGET(gtk_builder_get_object(builder, "b2"));
b3 = GTK_WIDGET(gtk_builder_get_object(builder, "b3"));
b4 = GTK_WIDGET(gtk_builder_get_object(builder, "b4"));
f1 = GTK_WIDGET(gtk_builder_get_object(builder, "f1"));
f2 = GTK_WIDGET(gtk_builder_get_object(builder, "f2"));
f3 = GTK_WIDGET(gtk_builder_get_object(builder, "f3"));
f4 = GTK_WIDGET(gtk_builder_get_object(builder, "f4"));
stack1 = GTK_WIDGET(gtk_builder_get_object(builder, "stack1"));
stkSw = GTK_WIDGET(gtk_builder_get_object(builder, "stkSw"));
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_builder_connect_signals(builder, NULL);
gtk_container_child_set_property (GTK_CONTAINER(stack1), f1, (const gchar*) "title", (const GValue*) "IVALUE");
gtk_widget_show(window);
gtk_main();
return EXIT_SUCCESS;
}
Вставка этой строки приводит к ошибке сегментации:
gtk_container_child_set_property (GTK_CONTAINER(stack1), f1, (const gchar*) "title", (const GValue*) "IVALUE");
Я написал эту строку в соответствии с документом: https://developer.gnome.org/gtk3/stable/GtkContainer.html#gtk-container-child-set-property
Разве я не установил свойство в соответствии свыше ссылка? Или есть ошибка где-то еще в моем коде?