Выпадающий список с Tkinter и Python

Язык Python имеет множество графических библиотек. Одной из них является Tkinter. И в сегодняшней статье мы рассмотрим как создать раскрывающийся список с Python и Tkinter, а также выведем индексы выбранных элементов в графическое окно.

Если вы хотите создать раскрывающийся список элементов и разрешить пользователю выбирать элементы списка, вы можете использовать виджет Combobox. Виджет Combobox позволяет создать выпадающий список, в котором можно мгновенно выбрать список элементов. Однако, если вы хотите получить индекс выбранных элементов в виджете со списком, вы можете использовать метод get(). Метод get() возвращает целое число выбранного элемента, известное как индекс элемента.

Пример

Давайте возьмем пример, чтобы увидеть, как это работает. В этом примере мы создали список дней недели в раскрывающемся списке, и всякий раз, когда пользователь выбирает день из раскрывающегося списка, он будет печатать и отображать индекс выбранного элемента в виджете «Label». Чтобы напечатать индекс, мы можем объединить строку, приведя данный индекс к строке.


from tkinter import *
from tkinter import ttk

# Создайте экземпляр фрейма или окна tkinter
window = Tk()

# Установить размер окна
window.geometry("700x350")

# Создайте функцию для очистки поля со списком
def clear_combobox():
  combobox.set('')

# Определить кортеж дней
days= ('Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье')

# Функция для печати индекса выбранной опции в Combobox
def callback(*arg):
  Label(window, text = 'Индекс равен' + str(combobox.current()) + ' для ' + ' ' + str(var.get()), font = ('Helvetica 12') ).pack()

# Создайте виджет со списком
var = StringVar()
combobox = ttk.Combobox(window, textvariable = var)
combobox['values'] = days
combobox['state'] = 'readonly'
combobox.pack(fill='x',padx= 5, pady=5)

# Установите трассировку для данной переменной
var.trace('w', callback)

# Создайте кнопку, чтобы очистить выбранное текстовое значение поля со списком
button = Button(window, text = 'очистить', command = clear_combobox)
button.pack()

window.mainloop()

Выполнение приведенного выше кода отобразит виджет со списком дней. Всякий раз, когда вы выбираете день из списка, он будет печатать индекс и соответствующий элемент в виджете метки.

Выпадающий список с Tkinter и Python

Таким образом, с помощью Tkinter и Python, мы создали выпадающий список дней недели.

Источник