Das selektieren und erkennen von einer Zelle ist nicht ganz so einfach. Dafür muss man sich ein wenig mit den "Innereien" vom TreeView auseinandersetzen.
Um dir einen Überblick zu geben:
Die Daten und die Anzeige sind voneinander getrennt.
Die Daten werden in
Gtk2::ListStore hinterlegt. Dazu definiert man welche Typen von Daten man in einer Zeile hat und trägt sie ein.
Das ListStore-Objekt übergibt man an das TreeView. (
set_model)
Das TreeView hat Spalten (
Gtk2::TreeViewColumn) und eine Spalte hat wiederum ein "CellRenderer", die Darstellung der Daten Erledigt. Wenn man ein TreeViewColumn erzeugt gibt man an welche Spalte aus dem ListStore vom CellRenderer angezeigt werden soll.
Du könntest einen "Gtk2::CellRendererToggle" als Renderer nutzen Clicks erkennen zu können, doch das ist weder besonders hübsch noch sonderlich bequem.
Leider ist die Dokumentation wie man Widgets modifiziert nicht besonders gut (um genau zu sein ziemlich schlagt und kaum vorhanden). Aus dem Grund habe ich dir gestern ein TreeView geschrieben, dass ich "extern::MatrixTreeView" getauft habe. Es zeigt eine Tabelle, in dem man einzelne Werte Selektieren, aber nicht Editieren kann (Dazu hatte ich keine Lust mehr) Über ein Signal bekommst du mit welches Feld selektiert wurde.
Der Nachfolgende Code ist das Paket zusammen mit einem Beispiel.
more (147.5kb)