top of page

Listbox

Listbox se utiliza para mostrar una lista de elementos entre los que un usuario puede seleccionar varios elementos, es un control de la interfaz de usuario de Tcl/Tk.


Primero vamos a crear una lista manual, lo primero es traernos Tkinter, volvemos a crear una variable e igualamos a Tk().


Creamos un frame.


Creamos otra variable, igualamos a Listbox, abrimos paréntesis, el primer argumento es donde vamos a poner el listbox, lo haremos en frame1.


Vamos a añadir tres elementos, para ello, ponemos el nombre de la variable, ponemos punto, ponemos insert, abrimos un paréntesis, ponemos la posición del elemento, y, entre comillas dobles, ponemos el texto que debe de aparecer.


Al ejecutar aparece en la ventana de la interfaz tres elementos.     


Podemos hacerlo de otra forma, dentro de insert, podemos END, que se usa para agregar elementos al final de la lista, a continuación, los elementos que van a componer la lista.


Con la siguiente línea, nos devuelve el número de elementos en la ventana de terminal.


Con get, podemos acceder a un elemento, que vemos en la ventana de terminal.


Para eliminar un elemento, usamos delete, y, entre paréntesis el elemento a eliminar.


Hasta aquí, solo podemos seleccionar un elemento de la lista, si queremos poder seleccionar más de un elemento, debemos de pasar EXTEND al parámetro selectmode, como sigue:


Voy a dar un tamaño a frame1, para ello, uso geometry, entre paréntesis, pongo 400*300.


También voy a poner un título.


Lo mejor para rellenar una lista para pruebas es usar un bucle FOR, para ello, ponemos FOR declaramos una variable, ponemos in, ponemos range, entre paréntesis, donde empezar y donde acabar.


En la siguiente línea, ponemos:


Ejecutamos y se rellena la lista desde el numero 1 al número 50.


Vamos a agregar la barra de desplazamiento, lo haremos diferente al ejemplo anterior, voy a usar pack, donde usaremos los parámetros side y fill, de esta manera, la barra de desplazamiento se ajustará a la ventana, como sigue:


Si tenemos una lista o una tupla, de la siguiente manera, cargamos todos los elementos.


El método curselection()

Vamos a ver el método curselection() que retorna una tupla con los índices de los elementos seleccionados, se suele usar en respuesta a algún evento, para obtener el texto de cada elemento a partir del índice usamos el método get().


Agregamos un módulo, ponemos un for como sigue:


La variable “i” va a valer desde 0 hasta el último índice.


En la siguiente línea, imprimimos el valor de i con el método get.


Creamos un botón, como nombre, ponemos Aceptar, ponemos command e igualamos al método obtener_valor, quiere decir que cuando hagamos clic en el botón, se ejecutará el módulo obtener_valor.


Ejecutamos, seleccionamos un valor, y, en la ventana de terminal aparece dicho valor.


Ahora, queremos seleccionar un elemento, excepto el elemento 2, para ello, usamos selection_clear, que remueve la selección, como sigue:


Al ejecutar, seleccionar segundo, pulsar en el botón, vemos que en la ventana de terminal no aparece, pero si los otros dos números.


Si no queremos ver los bordes usamos borderwidth e igualamos a 0.


Podemos probar con otros números para ver cómo queda.


Vemos que cuando seleccionaos un elemento queda subrayado, si no queremos que se subraye usamos activestyle e igualamos a none.


Para dar un color al borde, usamos highlightbackground e igualamos a un color en inglés o el código de un color, y, si queremos que cuando se seleccione un elemento cambie el borde de color, usamos highlightcolor.


Al ejecutar el borde es de color rojo, pero, al seleccionar un elemento, el color pasa a azul.

Para poner un grosor al borde, usamos highlightthickness e igualamos a un valor.


Otras propiedades configurables.


incluyen selectbackgroundselectforeground y selectborderwidth, que determinan el color de fondo, color de texto y tamaño del borde de un elemento seleccionado.



Miguel Angel Franco

0 visualizaciones0 comentarios

Entradas recientes

Ver todo
bottom of page