У меня есть приложение с графическим интерфейсом с компонентом gtk.Treeview.Его модель установлена в gtk.Treestore, которую я заполняю иерархической структурой.Все работает нормально - вид дерева - это то, что я ожидаю.
Теперь я бы хотел отфильтровать листовые узлы, чтобы они содержали только данную строку.Я попытался создать фильтр модели следующим образом:
self.modelfilter = treestore.filter_new()
self.modelfilter.set_visible_func(self.visible_cb, self.txt)
и определить функцию фильтрации, как показано ниже (self.txt - текст, который я фильтрую):
def visible_cb(self, model, iter, data):
return self.txt.lower() in model.get_value(iter, 0).lower()
К сожалению, такой подходне очень хорошо, потому что фильтрация выполняется на всех узлах, а не только на листах.
Существует ли элегантное решение этой проблемы в GTK?