Как соотнести элементы gtk.ListStore с моими собственными моделями - PullRequest
1 голос
/ 13 июня 2010

У меня есть список объектов Project, которые я отображаю в GtkTreeView. Я пытаюсь открыть диалоговое окно с деталями проекта, когда пользователь дважды щелкает строку элемента в TreeView.

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

Однако, это не совсем правильно (плюс, предполагается, что имя проекта уникально), и мне было интересно, есть ли более элегантный способ сделать это.

Ответы [ 2 ]

1 голос
/ 17 июня 2010

В итоге я расширил gtk.ListStore и использовал мой пользовательский список. Я также похитил метод append (), чтобы не только он добавлял [str, str и т. Д.] В ListStore, но и фактическую модель внутри настраиваемого свойства list класса, расширяющего ListStore.

Затем, когда пользователь дважды щелкает строку, я выбираю запрошенную модель по индексу строки в ListStore, который соответствует индексу модели в пользовательском списке.

1 голос
/ 13 июня 2010

Не для моделей по умолчанию.Вы можете попробовать использовать Py-gtktree-модели , написанные специально для использования одних и тех же объектов в бэкенде и презентации.

В документации описан альтернативный способ работы со стандартными моделями (т.е. без использования Py-gtktree вообще), кстати, но я бы не назвал это элегантным.

...