如何从 tkinter 的列表框中获取选定的值?
先决条件: Tkinter、列表框
ListBox是 Tkinter 为 GUI 开发提供的众多有用小部件之一。 Listbox 小部件用于显示项目列表,用户可以根据约束从中选择一个或多个项目。在本文中,我们将看到如何从 Listbox 小部件中获取选定的值。
代码:
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()
输出:
解释:
listbox 上的 curselection 方法返回一个包含列表框所选项目的索引/行号的元组,从 0 开始。我们创建的 selected_item函数遍历由 curselection 方法返回的元组并打印使用索引的列表框。当我们按下“Print Selected”按钮时,它会被执行。在没有选中项的情况下,curselection 方法返回一个空元组。
注意:您可以将列表框小部件的 selectmode 参数更改为“SINGLE”,以限制仅选择单个值。