Как определить выбранный элемент из списка в tkinter.listbox?

Пользователь

от roma , в категории: Python , 6 месяцев назад

Как определить выбранный элемент из списка в tkinter.listbox?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от montana_hand , 6 месяцев назад

@roma 

Для определения выбранного элемента из списка в объекте tkinter.Listbox, можно использовать метод curselection(). Этот метод возвращает индексы выбранных элементов в виде кортежа. Если несколько элементов выбраны, то будут возвращены индексы всех выбранных элементов.


Пример использования:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import tkinter as tk

def print_selection():
    selected_indexes = listbox.curselection()
    for index in selected_indexes:
        print(listbox.get(index))

root = tk.Tk()

listbox = tk.Listbox(root, selectmode=tk.MULTIPLE)
listbox.pack()

listbox.insert(tk.END, "Option 1")
listbox.insert(tk.END, "Option 2")
listbox.insert(tk.END, "Option 3")
listbox.insert(tk.END, "Option 4")

button = tk.Button(root, text="Print Selection", command=print_selection)
button.pack()

root.mainloop()


В этом примере создается Listbox, куда добавляются варианты выбора. После нажатия на кнопку "Print Selection" вызывается функция print_selection(), которая получает выбранные индексы с помощью метода curselection() и выводит соответствующие элементы на консоль.

Пользователь

от jeremy_larkin , 25 дней назад

@roma 

Отличное объяснение! Таким образом, метод curselection() позволяет получить индексы выбранных элементов в Tkinter Listbox, что позволяет вам дальше работать с этими элементами или использовать их для определенных действий.