📌  相关文章
📜  如何从 tkinter 的列表框中获取选定的值?

📅  最后修改于: 2022-05-13 01:55:36.459000             🧑  作者: Mango

如何从 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()




输出:

带输出的 GUI 窗口

解释:

listbox 上的 curselection 方法返回一个包含列表框所选项目的索引/行号的元组,从 0 开始。我们创建的 selected_item函数遍历由 curselection 方法返回的元组并打印使用索引的列表框。当我们按下“Print Selected”按钮时,它会被执行。在没有选中项的情况下,curselection 方法返回一个空元组。

注意:您可以将列表框小部件的 selectmode 参数更改为“SINGLE”,以限制仅选择单个值。