Frage

Ich habe eine ListStore eine Liste von Tags Modellierung. Diese Liste kann von der ListStore ändern auseinander. Was ich möchte, ist zu tun, um das TagRemoved Ereignis in meiner TagList Klasse zu hören, und die Tag vom ListStore entfernen, wenn das Ereignis ausgelöst wird. Allerdings kann ich nicht einen Weg zu finden, scheinen eine ListStore für die Zeile, die einen bestimmten Tag zu suchen, damit ich sie entfernen können.

Gibt es eine Möglichkeit, dies zu tun?

War es hilfreich?

Lösung

Ein GtkListStore implementiert die GtkTreeModel-Schnittstelle, die den Baum-Traversal-Operationen enthält, die Sie wollen. Soweit ich weiß, gibt es keine Bequemlichkeit API eine Liste / Baumspeicher für die Suche, so dass Sie Ihre eigene Rolle haben werden.

Da Sie einfach eine GtkListStore iterieren, können Sie alle die API mit Kind / Eltern Beziehungen zu tun ignorieren und einfach verwenden gtk_tree_model_iter_first() und gtk_tree_model_iter_next() die Liste zu durchqueren.

Alternativ, wenn Sie bereits den Index des entfernten Tages im Laden kennen (zB von Ihrem TagRemoved Ereignisse), können Sie das in eine GtkTreePath drehen und verwenden gtk_tree_model_get_iter() die Zeile in Frage, ohne eine Suche direkt abgerufen werden.

Andere Tipps

GtkListStore wird intern als Liste verknüpft so Sie sollten selbst das Modell scannen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top