Hoe kan ik een vervolgkeuzemenu maken van een lijst in Tkinter?

Ik ben een GUI aan het maken die informatie over een persoon opbouwt. Ik wil dat de gebruiker zijn geboortemaand selecteert met behulp van een vervolgkeuzebalk, waarbij de maanden eerder zijn geconfigureerd als lijstindeling.

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

Hoe kan ik een vervolgkeuzelijst maken om de maanden weer te geven?


Antwoord 1, autoriteit 100%

Om een ​​”vervolgkeuzemenu” te maken, kun je OptionMenugebruiken in tkinter

Voorbeeld van een eenvoudig OptionMenu:

from Tkinter import *
master = Tk()
variable = StringVar(master)
variable.set("one") # default value
w = OptionMenu(master, variable, "one", "two", "three")
w.pack()
mainloop()

Meer informatie (inclusief het bovenstaande script) is hierte vinden.


Het maken van een OptionMenuvan de maanden uit een lijst zou zo simpel zijn als:

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

Om de waarde op te halen die de gebruiker heeft geselecteerd, kunt u eenvoudig een .get()gebruiken op de variabele die we aan de widget hebben toegewezen, in het onderstaande geval is dit 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()

Ik raad je ten zeerste aan om deze sitete lezen voor meer basisinformatie over tkinter, aangezien de bovenstaande voorbeelden zijn aangepast vanaf die site .


Antwoord 2

Hier is mijn functie waarmee u een keuzelijst met invoervak ​​kunt maken met waarden van bestanden die zijn opgeslagen in een map en waarmee u de waarde van de geselecteerde optie kunt afdrukken met een klik op de knop.

from tkinter import*
import os, fnmatch
def submitForm():    
    strFile = optVariable.get()
    # Print the selected value from Option (Combo Box)    
    if (strFile !=''):        
        print('Selected Value is : ' + strFile)
root = Tk()
root.geometry('500x500')
root.title("Demo Form ")
label_2 = Label(root, text="Choose Files ",width=20,font=("bold", 10))
label_2.place(x=68,y=250)
flist = fnmatch.filter(os.listdir('.'), '*.mp4')
optVariable = StringVar(root)
optVariable.set("   Select   ") # default value
optFiles = OptionMenu(root, optVariable,*flist)
optFiles.pack()
optFiles.place(x=240,y=250)
Button(root, text='Submit', command=submitForm, width=20,bg='brown',fg='white').place(x=180,y=380)
root.mainloop()

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes