web-dev-qa-db-fra.com

Comment créer un menu déroulant à partir d'une liste dans Tkinter?

Je crée une interface graphique qui construit des informations sur une personne. Je veux que l'utilisateur sélectionne son mois de naissance à l'aide d'une barre déroulante, avec les mois configurés plus tôt comme format de liste.

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

Comment créer une liste déroulante pour afficher les mois?

16
user7437114

Pour créer un "menu déroulant", vous pouvez utiliser OptionMenu dans tkinter

Exemple de base OptionMenu:

from Tkinter import *

master = Tk()

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

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

mainloop()

Plus d'informations (y compris le script ci-dessus) peuvent être trouvées ici .


Créer un OptionMenu des mois à partir d'une liste serait aussi simple que:

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()

Pour récupérer la valeur sélectionnée par l'utilisateur, vous pouvez simplement utiliser un .get() sur la variable que nous avons affectée au widget. Dans le cas ci-dessous, il s'agit de 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()

Je recommande fortement de lire ce site pour plus d’informations de base sur tkinter car les exemples ci-dessus sont modifiés à partir de ce site.

33
Ethan Field