Как коррелировать gtk. Объекты ListStore с моими собственными моделями

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

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

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

1
задан Cœur 21 May 2018 в 12:07
поделиться

2 ответа

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

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

1
ответ дан 2 September 2019 в 23:47
поделиться

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

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

1
ответ дан 2 September 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: