LINUX.ORG.RU

Пара глупых вопросов по cl-gtk2


0

1

Вот если у меня есть окно и по нажатию кнопки я должен удалить несколько виджетов на нём.

Конкретнее, например, так

(setq w (make-instance 'gtk-window ......))
(setq vbox (make-instance 'v-box))
......
(setq entries (loop for i from 1 to 10 collect (make-instance 'entry)))
.....
(loop for i in enrties (box-pack-start vbox i))
......
(widget-show)


Удаляю так:
(loop for i in entries (container-remove vbox i))
(setq entries nil)

Насколько корректно так делать? В смысле, виджеты не будут видны на окне, но освободится ли память? Нашел это решение на форуме про ruby, у них есть метод remove у контейнеров, но решил перестраховаться и спросить.

Ещё, как удалить само окно? Есть некий widget-hide, но мне нужно полное удаление. Как ни странно, гугль не помог

Если никаких других ссылок (как со стороны лиспа, так и со стороны Gtk+) на виджеты нет, то виджеты будут уничтожены.

В Gtk+ нет отдельной функции для закрытия окна. Окно закрывается путем его уничтожения функцией gtk:object-destroy.

dmitry_vk ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.