Почему ошибка сегментации при попытке заполнить список gtk_list? - PullRequest
0 голосов
/ 01 марта 2019

Я хочу заполнить gtk2 gtk_list и пробую этот блок кода в функции:

GList (*List) = NULL;
GtkWidget (*ListBox) = gtk_list_new();
List = g_list_prepend(List, "List Item");
gtk_container_add(GTK_CONTAINER(Vbox), ListBox);
gtk_list_prepend_items(GTK_LIST(ListBox), List);

Я уверен, что с моей функцией все в порядке.Я получаю ошибку сегментации?Зачем?И что именно я могу сделать, чтобы это исправить?

1 Ответ

0 голосов
/ 01 марта 2019

Вы используете segfaulting, потому что смешиваете GList и устарели GtkList список функций.

Старый GtkList устарела и не совпадает с GList .Примечание:

GList (*List) = NULL;
...
List = g_list_prepend(List, "List Item");
/* now you switch to gtk_list_... and GtkList */
gtk_container_add(GTK_CONTAINER(Vbox), ListBox);
gtk_list_prepend_items(GTK_LIST(ListBox), List);

Решение: просто используйте функции GList и g_list... и избегайте устаревших аналогов GtkList и gtk_list....GList и g_list... были разработаны для замены более ранних типов и функций и будут бесперебойно работать при компиляции в приложении Gtk + 2.

...