Selección multiple

En Trabajando con GtkTreeView en Python explicaba como utilizar el complejo pero versatil widget GtkTreeView. Sin embargo, faltaba un detalle importante: ¿como usar selección múltiple?

Lo primero es poner el selector del GtkTreeView en modo de selección múltiple:

treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)

Ahora ya podremos marcar más de una fila simultáneamente usando las teclas Mayúsculas y Control.

Leer los elementos marcados es tan sencillo como obtener primero el iterador y el arbol:

tree,iter = self.z88tree.get_selection().get_selected_rows()

Si el iterador es None, no hay ninguna fila seleccionada, pero si lo está, no tenemos más que recorrer los elementos del iterador para acceder a las filas. Con ellas, podemos usar el método get_value del arbol para obtener el valor de cada una.

En este ejemplo almacenamos en la lista ret el valor de la columna cero de cada fila seleccionada:

ret = []
for item in iter:
    ret.append(tree.get_value(tree.get_iter(item),0))

Fácil, fácil, para toda la familia.

CC BY-SA 4.0 Selección multiple por A cuadros está licenciado bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.

Un comentario en “Selección multiple

  1. > Me gustaria saber como se hace para que luego de ejecutar el signal
    > handler de la seleccion de items, el treeview continue mostrandolos
    > como seleccionados.
    > En mi caso sucede que una vez que pico el boton derecho la seleccion
    > se rompe.

    La manera de hacerlo es capturar el evento BUTTON-PRESS-EVENT en el TREEVIEW, y si es el botón derecho, hacer lo que se quiera (por ejemplo mostrar un menú emergente) y devolver TRUE para que el evento no siga propagándose.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *