[Python-de] GTK -> Liststore -> Treeview: klick

Volker Helm Helm.volker at gmx.de
Mo Mai 26 10:17:46 UTC 2008


Normalerweise brauchst Du keine Extraspalte, sofern Du nur die Daten aus dem Liststore brauchst. Über die aktive Zeile kannst du alle Werte ebendieser auslesen. Die Sortierung zieht auch die Daten mit, also kein Problem von der Seite.

model, itr = selection.get_selected()
wert1,wert2,... = model.get(itr,1,2,...)

Sollte helfen,

Volker

-------- Original-Nachricht --------
> Datum: Fri, 23 May 2008 11:38:03 +0200
> Von: Mathias Uebel <mathias.uebel at meeloon.de>
> An: Python-de <python-de at python.net>
> Betreff: [Python-de] GTK -> Liststore -> Treeview: klick

> Hallo Pythonistas,
> 
> ich habe hier eine GUI mit GTK in dem eine Liste mit Liststore und 
> Treeview gefüllt ist.
> Wenn nun eine Eintrag der Liste angeklickt wurde, brauche ich ein Index. 
> Da sich die Spalten sortieren lassen, kann ich die Cursor-Position nicht 
> nehmen. Hierzu habe ich eine durchnummerierte Spalte anlegt, die nicht 
> angezeigt wird.
> 
> Meine Frage: Ist das so richtig? Denn ich konnte keine andere Methode 
> finden.
> 
> Mathias
> 
> hier Auszüge
> <pre>
>         # create a liststore with string column to use as the model
>         self.myListstore = gtk.ListStore(int, str, str, 'gboolean')
> 
>         # create the TreeView using liststore
>         self.treeview = gtk.TreeView(self.myListstore)
>         self.treeview.connect("row-activated", self.Call_ListClick)
> 
>         col = {
>             #0:['Nr',0],
>             1:['Time',1],
>             2:['Title',2]}
>            
>         for key, val in col.iteritems():
>             # create the TreeViewColumns to display the data
>             tvcolumn = gtk.TreeViewColumn(val[0])
>             # add columns to treeview
>             self.treeview.append_column(tvcolumn)
>             # create a CellRenderers to render the data
>             cell = gtk.CellRendererText()
>             # add the cells to the columns
>             tvcolumn.pack_start(cell, True)
>             # content in
>             tvcolumn.set_attributes(cell, text=val[1])
>             # Allow sorting on the column
>             tvcolumn.set_sort_column_id(key)
> 
>     def Call_ListClick(self, *args):
>         """Function: If a item is klicked."""
>         cursor = self.treeview.get_cursor()
>         # Get the selection iter
>         selected = self.treeview.get_selection()
>         model, selection_iter = selected.get_selected()
>         val = self.myListstore.get_value(selection_iter, 0)
>         print val
> </pre>
> 
> 
> _______________________________________________
> python-de maillist  -  python-de at python.net
> http://python.net/mailman/listinfo/python-de

-- 
GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen!
Jetzt dabei sein: http://www.shortview.de/?mc=sv_ext_mf@gmx