Итак, у меня есть TreeView / TreeStore, который я заполняю данными из списка. Мое приложение использует только указанный список в качестве справочных данных. TreeStore просто создан для отображения. И TreeView можно восстановить, наклонив заголовки столбцов. Потому что .set_sort_column_id () использовался для инициализации каждого столбца.
Проблема в том, что следующий код всегда возвращает номер строки, по которому щелкнули, на дисплее:
# convert ListStore iter to row number
def rowno(self):
(model, iter) = self.MY_LIST_STORE.get_selection().get_selected()
return model.get_path(iter)[0]
Это должно было сделать это. Это работает нормально для меня, пока отображается оригинальный несортированный список. После восстановления TreeView (и TreeStore?) Отображаемые номера строк (.get_path
) больше не соответствуют номерам строк в моем исходном хранилище данных.
Как я могу отобразить это? Или как узнать, какой номер выбранного пути соответствует какой записи в первоначально переданном списке TreeView?
(Конечно, я мог бы вставить искусственный столбец в TreeStore, чтобы сохранить свой исходный номер строки. Но должен быть какой-то собственный способ добиться этого?)