2013-03-30 2 views
1

Я ищу виджет, который может быть динамически изменен. Мне нужно добавить и удалить строки. Есть еще методы, приезжающие с Grid, как gtk_grid_insert_row или gtk_grid_insert_next_to, но я не нахожу какой-либо метод xxx_remove_xxx.Как динамически вставлять и удалять строки

Я разрабатываю простой клиент http (для проверки api). И я добавляю возможность добавлять и удалять переменные «GET» динамически.

Пользовательский интерфейс выполнен с строками, содержащими выпадающий список (для выбора переменных), запись (для ее значения), а в последней строке - кнопку удаления.

Каждый раз, когда я устанавливаю переменную, добавляется новая строка (новая доступная переменная). И каждый раз, когда я устанавливаю переменную, соответствующая строка удаляется.

enter image description here

спасибо.

ответ

0

Gtk.Grid не имеет способа удалить; но Gtk.Container делает. Поскольку Grid является контейнером, вы можете использовать gtk_container_remove.

Документов для этого здесь: https://developer.gnome.org/gtk3/3.8/GtkContainer.html#gtk-container-remove

+0

thx для ответа, но gtk_container_remove удаляет GtkWidget, и это целая строка сетки, которую мне нужно удалить. Каждый раз, когда я добавляю новую строку, мне нужно вызвать insert_row, чтобы убедиться, что в сетке достаточно строки. И я не уверен, что если строка пуста, она будет удалена. –

+0

В этом случае, может быть, лучше написать «виджет строки» и упаковать несколько из них в HBox? Таким образом вы можете удалить/добавить, используя только один указатель. – Ancurio

0

Я думаю, что виджет вы ищете Gtk.ListBox. Это контейнер, так что вы можете add и remove строк легко.

+0

Я сделал виджет, расширяющий Gtk.Box (представляющий линию) в вертикальный Gtk.Box, он работает. Gtk.ListBox кажется замечательным, но я использую gtk3.8 (3.9, необходимый для ListBox), в будущем обновлении. спасибо. –

+0

Ваши ссылки мертвы. – ale10ander

+1

@Cptn_Hammer Я только что исправил это :) Теперь они должны работать! – chavaone

Смежные вопросы