Hallo! Einem TreeView von mir werden Elemente der selbstgeschriebenen Klasse Song hinzugefügt. Wie bekomme ich das entsprechende Song-Objekt heraus, wenn es angeklickt wird?
MfG
Anmeldungsdatum: Beiträge: 106 |
Hallo! Einem TreeView von mir werden Elemente der selbstgeschriebenen Klasse Song hinzugefügt. Wie bekomme ich das entsprechende Song-Objekt heraus, wenn es angeklickt wird? MfG |
||
Anmeldungsdatum: Beiträge: 11 |
Hai, mit dem row_activated-signal kriegst du raus, welcher eintrag aktiviert wurde: http://valadoc.org/#!api=gtk+-3.0/Gtk.TreeView.row_activated Das gibt dir dann nen TreePath, der den pfad zu dem eintrag gibt. Bspsw gibt
den 1. Index diesen Pfades aus. Solltest du einen komplexeren Baum haben, musst du entsprechend mit den Indizes basteln. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 106 |
Ich möchte ja das hinzugefügt Song Objekt bekommen. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 106 |
Es ist auch kein TreeStore, sondern ein ListStore, der mit Elementen gefüllt wird in 2 spalten. Mehr nicht. |
||
Anmeldungsdatum: Beiträge: 11 |
Hallo, würde behaupten, dass row_activated genauso bei einem ListStore funktioniert (wobei der TreePath dann eben nur den einen Index enthält). Damit hättest du schonmal die Nummer des Eintrages. Wenn du die Song-Objekte dann in einem Array behältst (mit der gleichen Reihenfolge, wie du die Namen in die Liste einträgst), kommst du über den Index vom TreePath auf das jeweilige Objekt im Array. Vielleicht gibts auch eine Möglichkeit, die Song-Objekte direkt mit den TreeStore-Einträgen zu verbinden, dazu wüsste ich allerdings nichts. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 106 |
Die Idee mit dem Array ist gut. Das werde ich jetzt so auch mal versuchen, und zwar mit einer HashMap aus Gee. |