[Python-de] TreeView aus PyGTK

Marcus Habermehl bmh1980de at yahoo.de
Son Okt 10 00:30:54 CEST 2004


Hi.

Am Samstag, den 09.10.2004, 23:37 schrieb "Sebastian \"Marduk\"
Pölsterl":
> Marcus Habermehl wrote:

[...]

> > Ich habe neben dem TreeView ein TextView eingefügt. Der Text in dem
> > TreeView soll sich ändern, wenn man auf den entsprechenden Eintrag im
> > TreeView klickt.
> > 
> > Hab jetzt mit Hilfe von Glade-2 ein Signal gefunden (row_activated),
> > dass dem nahe kommt. Leider funktioniert dies nur bei einem Doppelklick.
> > Ich hätte aber lieber die Änderung bereits beim ersten Klick. Welches
> > Signal wäre dat denn?
> > 
> cursor_changed sollte dein Freund sein, das tritt ein wenn der Eintrag
> ausgewählt ist.

Danke, das ist es. Komisch ist nur, dass ich das Signal bereits versucht
habe. Anscheinend hat da etwas im Code nicht gestimmt, dass ich
zwischenzeitlich korrigiert habe.

> > Das zweite Problem wäre, wie bekomme ich im Code heraus, welcher Eintrag
> > im TreeView ausgewählt ist? Hab schon die Hilfe [help(gtk.TreeView)]
> > durch gestöbert. Aber alles, was mir logisch erschien, war eher unnütz. 

[...] 

> model, iter = treeview.get_selection().get_selected()
> value = liststore.get_value(iter, 0)

Mit einer kleinen Änderung klappt auch das wunderbar.

model, iter = treeview.get_selection().get_selected()
text = model.get_value(iter, 0)

Aber ich denke mal, dass bei dir hinter liststore etwas Vergleichbares
steht, wie bei mir hinter model [gtk.TreeStore(gobject.TYPE_STRING)].

Aber wozu "model, iter"? Oder ist das der Bezug aus der zweiten Zeile,
den ich von liststore auf model geänderte habe?

Wenn ich aber ehrlich sein soll: Ich finde, dass die Entwickler von GTK+
mit TreeView einen Bock geschossen haben. So kompliziert müsste es doch
bestimmt nicht sein. Seit gestern hab ich nix anderes gemacht, als Doku
im Netz zu lesen und mir verschiedenen Beispiele an zugucken.

Aber es geht ja voran. ;-) Als nächsten Schritt werd ich versuchen in
den Tree noch so schöne Bilder einzufügen. Auch wenn ich dazu bisher
noch nichts im Netz gefunden hab. 

Hättest du hierfür vielleicht einen kleinen Anstoß für mich?

Gruß

Marcus