Zur Verarbeitung von Einträgen in einem gtk.TreeModel
bedient man sich in Python üblicherweise der Iteration. Hierbei bietet gtk.TreeModel
einige Methoden zur Arbeit damit. Ein übliches Konstrukt sieht damit so aus:
iter = model.get_iter_first() while True: value = model.get_value(iter, 0) # Do something with value iter = model.iter_next(iter) if iter is None: break |
Ziemlich umständlich und daher oft auch in dieser etwas vereinfachten Version vorzufinden:
iter = model.get_iter_first() while iter: value = model.get_value(iter, 0) # Do something with value iter = model.iter_next(iter) |
Doch wie so oft in Python gibt es eine viel intuitivere und simplere Lösung; gtk.TreeModel
implementiert __iter__
und __next__
, womit sich das obige Konstrukt auf folgenden Zweizeiler reduzieren lässt.
for row in model: value = row[0] |
Bei row
handelt es sich um eine gtk.TreeModelRow
, welche intuitiven Zugriff auf die Daten der jeweiligen Spalten ermöglicht.