2011-10-29 34 views
11

Estoy aprendiendo PyGtk. Tengo una vista de árbol simple con 1 columna, obtengo elementos para esa vista de árbol de la lista.¿Cómo obtener el valor del elemento seleccionado en treeview en PyGTK?

¿Cómo obtener el valor del elemento seleccionado en treeview?

+0

PS: No se olvide de aceptar (haciendo clic en el "derecho" a la izquierda de la respuesta) mi respuesta si te conviene. Gracias ! –

Respuesta

20

Puede usar el método gtk.TreeView.get_selection() para obtener el gtk.TreeSelection.

A continuación, debe usar el método gtk.TreeSelection.get_selected_rows() para obtener TreeModel (el ListStore) y los elementos seleccionados rutas.

Luego, puede usar el gtk.TreeModel.get_iter() para obtener el iter de la ruta (devuelto por el método gtk.TreeSelection.get_selected_rows()).

Finalmente, puede usar el método gtk.TreeModel.get_value() para obtener el valor correspondiente a la columna y el iter previamente recuperado.

Ejemplo:

def onSelectionChanged(tree_selection) : 
    (model, pathlist) = tree_selection.get_selected_rows() 
    for path in pathlist : 
     tree_iter = model.get_iter(path) 
     value = model.get_value(tree_iter,0) 
     print value 

listStore = gtk.ListStore(int) 
treeview = gtk.TreeView() 
treeview.set_model(listStore) 
tree_selection = treeview.get_selection() 
tree_selection.set_mode(gtk.SELECTION_MULTIPLE) 
tree_selection.connect("changed", onSelectionChanged) 
+0

Impresionante, muchas gracias! – shiii

Cuestiones relacionadas