Python Tkinter - 从列表中创建下拉列表选择栏

17 python tkinter drop-down-menu

我正在创建一个用于构建人员信息的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
Run Code Online (Sandbox Code Playgroud)

如何创建下拉列表以显示月份?

Eth*_*eld 36

要创建"下拉菜单",您可以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()
Run Code Online (Sandbox Code Playgroud)

可以在此处找到更多信息(包括上面的脚本).


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()
Run Code Online (Sandbox Code Playgroud)

虽然你没有在你的问题中提出这个问题,但是为了检索用户选择的值,你可以简单地.get()在输出的变量上使用a ,在下面的例子中,这是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()
Run Code Online (Sandbox Code Playgroud)

我强烈建议您通过此博客阅读更多基本的tkinter信息.

  • 对于第一个链接:http://web.archive.org/web/20201113091416/https://effbot.org/tkinterbook/optionmenu.htm 对于第二个链接:http://web.archive.org/web/ 20201111171246/https://effbot.org/tkinterbook/ (2认同)