2015-03-14 2 views
1

Я программирую python + Gtk3.Должен ли я «уничтожить» liststore (модель дерева) при уничтожении дерева?

У меня есть Gtk.TreeView с моделью Gtk.ListStore как модель.

В какой-то момент программы мне нужно уничтожить древовидную структуру, чтобы поместить свежую на ее место.

Однако я не знаю, что происходит с моделью. Должен ли я уничтожить его, очистить его или просто оставить там и позволить питону есть его?

Я также thinked в рецикл ту же модель на новый TreeView, но я предпочел бы не так: слишком много хлопот ...

Спасибо!

+0

Почему слишком сложно связать одну и ту же модель с новым деревом? Это то, что оно предназначено для ... – ptomato

+0

Потому что модель действительно должна измениться. Идея состоит в том, чтобы добавить новые столбцы и строки. Поэтому мне было проще отказаться от всего и сделать это снова вместо редактирования модели и древовидного изображения и справиться с несогласованностью типов данных, длин и т. Д. – GasparAlbert

ответ

1

Вы можете оставить его в сборщике мусора Python, так же, как если бы вы закрыли приложение (он назовет g_object_unref на обоих).

Это говорит о том, что идея разделения моделей и представлений заключается в том, что вы можете смешивать их так, как вам нравится, то есть отображать одну и ту же модель в разных представлениях или даже отображать разные модели в одном представлении. Что вам нужно, чтобы заменить и может указать проблемы в том, как вы разрабатываете свой интерфейс.

+0

Спасибо, я буду думать, что завтра. Уже уделяя особое внимание другой части приложения: D – GasparAlbert