Requisitos previos: Tkinter , cuadro de lista
ListBox es uno de los muchos widgets útiles proporcionados por Tkinter para el desarrollo de GUI. El widget Listbox se utiliza para mostrar una lista de elementos de los que un usuario puede seleccionar uno o más elementos según las restricciones. En este artículo, veremos cómo podemos obtener los valores seleccionados de un widget de cuadro de lista.
Código:
Python3
# Python3 program to get selected # value(s) from tkinter listbox # Import tkinter from tkinter import * # Create the root window root = Tk() root.geometry('180x200') # Create a listbox listbox = Listbox(root, width=40, height=10, selectmode=MULTIPLE) # Inserting the listbox items listbox.insert(1, "Data Structure") listbox.insert(2, "Algorithm") listbox.insert(3, "Data Science") listbox.insert(4, "Machine Learning") listbox.insert(5, "Blockchain") # Function for printing the # selected listbox value(s) def selected_item(): # Traverse the tuple returned by # curselection method and print # corresponding value(s) in the listbox for i in listbox.curselection(): print(listbox.get(i)) # Create a button widget and # map the command parameter to # selected_item function btn = Button(root, text='Print Selected', command=selected_item) # Placing the button and listbox btn.pack(side='bottom') listbox.pack() root.mainloop()
Producción:
Explicación:
El método curselection en el cuadro de lista devuelve una tupla que contiene los índices/números de línea de los elementos seleccionados del cuadro de lista, comenzando desde 0. La función selected_item que hicimos, atraviesa la tupla devuelta por el método curselection e imprime el elemento correspondiente de el cuadro de lista usando los índices. Se ejecuta cuando pulsamos el botón “Imprimir Seleccionados”. En el caso de que no haya elementos seleccionados, el método curselection devuelve una tupla vacía.
Nota: puede cambiar el parámetro de modo de selección del widget de cuadro de lista a «ÚNICO» para poner la restricción de elegir un valor único solamente.
Publicación traducida automáticamente
Artículo escrito por neerajxrana y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA