Hallo
ich würd gern wissen, wie man überlicherweise überprüft ob ein Iterator eines TreeModels noch gültig ist. Das GenericTreeModel bietet dazu die Methode iter_is_valid, aber wie geht man bei einem Iter eines TreeModel vor?
Hintergrund dessen ist übrigens, dass ich eine Funktion habe, die in einer Schleife Änderungen an einem TreeModel vornimmt. Da diese Funktion per gobject.idle_add() gestartet wird, kann es aber passieren, dass während der Ausführung das TreeModel neu erstellt wird. In diesem Fall bekomme ich immer die Meldung: "GtkWarning: gtk_tree_store_get_value: assertion `VALID_ITER (iter, tree_store)' failed".
Ich nehme an, wenn ich bei jedem Schleifendurchlauf prüfen würde, ob der Iter noch gültig ist, könnte ich die Meldung vermeiden.
Andererseits: gibt es eine Möglichkeit, eine Funktion die per idle_add() ausgeführt wurde, von "Aussen" wieder abzubrechen? Dann könnte ich nämlich Eventgesteuert den Abbruch erzwingen bevor es zu der Meldung kommt.
Hoffe ich hab das Problem klar ausgedrückt. Danke schon mal...
GtkTreeIter validieren
Wo benutzt man denn ein `gtk.TreeModel` direkt? Das ist ja nur eine abstrakte Klasse, die das Interface darstellt, und die abgeleiteten Klassen wie `gtk.TreeStore` und `gtk.ListStore` haben alle eine `iter_is_valid`-Methode.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Du hast Recht, muss mich da total verirrt haben. Jedenfalls klappt es jetzt. Danke!
Trotzdem nochmal: gibt es eine Möglichkeit, eine per idle_add() ausgeführte Funktion vorzeitig zu beenden, ohne die Abbruchbedingung in der Funktion zu platzieren?
Trotzdem nochmal: gibt es eine Möglichkeit, eine per idle_add() ausgeführte Funktion vorzeitig zu beenden, ohne die Abbruchbedingung in der Funktion zu platzieren?