Не используйте gtk_list_store_set_value()
, так как есть более простой способ, которого вам не хватает.Сначала заметка о «типизировании GValue
»;что вы пытаетесь набрать из ?GValue
- это контейнер для произвольного типа данных, он не может быть преобразован ни в какой встроенный тип или в любой тип GObject.Вам нужно создать его.
Однако использование gtk_list_store_set()
позаботится о создании и освобождении всех ваших GValue
s, поэтому вам не нужно об этом беспокоиться.Это работает так:
gtk_list_store_set(list_store, &iter,
column_number_1, value_1,
column_number_2, value_2,
...,
-1);
Таким образом, чтобы установить один столбец (скажем, номер 0) типа gint
, вы должны сделать gtk_list_store_set(list_store, &iter, 0, int_value, -1);
Не полагаться на GTKпроверить ввод текстового поля.Намного лучше решить для себя, какие значения являются действительными, и проверить их самостоятельно, прежде чем вставлять их в хранилище списков.Это предотвратит неприятные сюрпризы, когда кто-то введет значение, которого вы не ожидаете.