Как я могу создать выпадающее меню из списка в Tkinter?

Я создаю GUI, который строит информацию о человеке. Я хочу, чтобы пользователь выбирал свой месяц рождения, используя раскрывающийся список, с месяцами, настроенными ранее как формат списка.

from tkinter import *

birth_month = [
    'Jan',
    'Feb',
    'March',
    'April'
    ]   #etc


def click():
    entered_text = entry.get()

Data = Tk()
Data.title('Data') #Title

label = Label(Data, text='Birth month select:')
label.grid(row=2, column=0, sticky=W) #Select title

Как создать раскрывающийся список для отображения месяцев?

Ответ 1

Для создания "выпадающего меню" вы можете использовать OptionMenu в tkinter

Пример базового OptionMenu:

from Tkinter import *

master = Tk()

variable = StringVar(master)
variable.set("one") # default value

w = OptionMenu(master, variable, "one", "two", "three")
w.pack()

mainloop()

Дополнительную информацию (включая скрипт выше) можно найти здесь.


Создать OptionMenu месяцев из списка так же просто, как:

from tkinter import *

OPTIONS = [
"Jan",
"Feb",
"Mar"
] #etc

master = Tk()

variable = StringVar(master)
variable.set(OPTIONS[0]) # default value

w = OptionMenu(master, variable, *OPTIONS)
w.pack()

mainloop()

Чтобы получить значение, выбранное пользователем, вы можете просто использовать .get() для переменной, которую мы присвоили виджету, в следующем случае это variable:

from tkinter import *

OPTIONS = [
"Jan",
"Feb",
"Mar"
] #etc

master = Tk()

variable = StringVar(master)
variable.set(OPTIONS[0]) # default value

w = OptionMenu(master, variable, *OPTIONS)
w.pack()

def ok():
    print ("value is:" + variable.get())

button = Button(master, text="OK", command=ok)
button.pack()

mainloop()

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

Ответ 2

Как я могу на самом деле получить выбранный вариант для выполнения действия?!