Tkinter 下拉菜单
Tkinter 支持下拉菜单。这与你操作系统上的标准组合框类似。
该控件称为 OptionMenu,你需要的参数是:frame,tk 变量和带有选项的字典。
![Tkinter 下拉菜单](/img/Tutorial/Tkinter/Tkinter dropdown.png)
Tkinter 下拉示例
下面的示例创建一个带有组合框的 Tkinter 窗口。
from Tkinter import *
import Tkinter as ttk
from ttk import *
root = Tk()
root.title("Tk dropdown example")
# Add a grid
mainframe = Frame(root)
mainframe.grid(column=0,row=0, sticky=(N,W,E,S) )
mainframe.columnconfigure(0, weight = 1)
mainframe.rowconfigure(0, weight = 1)
mainframe.pack(pady = 100, padx = 100)
# Create a Tkinter variable
tkvar = StringVar(root)
# Dictionary with options
choices = { 'Pizza','Lasagne','Fries','Fish','Potatoe'}
tkvar.set('Pizza') # set the default option
popupMenu = OptionMenu(mainframe, tkvar, *choices)
Label(mainframe, text="Choose a dish").grid(row = 1, column = 1)
popupMenu.grid(row = 2, column =1)
# on change dropdown value
def change_dropdown(*args):
print( tkvar.get() )
# link function to change dropdown
tkvar.trace('w', change_dropdown)
root.mainloop()
它首先创建一个 Tk 对象并将其传递给使用 Frame()
创建的 tkinter 框架
root = Tk()
root.title("Tk dropdown example")
mainframe = Frame(root)
网格将添加到框架中,该框架将保持组合框。
mainframe.grid(column=0,row=0, sticky=(N,W,E,S) )
mainframe.columnconfigure(0, weight = 1)
mainframe.rowconfigure(0, weight = 1)
mainframe.pack(pady = 100, padx = 100)
弹出菜单包含在变量选项中定义的选项列表。 使用以下行创建 Tkinter 变量:
tkvar = StringVar(root)
使用 .set()
方法设置变量的默认值。
我们用以下方法创建 Tkinter 组合框:
popupMenu = OptionMenu(mainframe, tkvar, *choices)
并将回调方法 change_dropdown
链接到此组合框。