单击选项菜单时无法更新文本框

Can't not update the textbox when clicked the optionmenu

我正在尝试将我在选项菜单中的选择显示到文本框。谁能帮我解决这个问题? 当我在选项菜单中单击一个选项时,文本框没有更新。这是我的代码。

from tkinter import *
root = Tk()


display_text=StringVar()
e1=Entry(root, textvariable=display_text, width=42)
e1.grid(row=0, column=1)

def OptionMenu_Select(): 
   display_text.set(var.get())  

Menu = {"Pho bo":".50", "Chao ga":".99", "pho xao":".10", "Com rang":".80"}
choices = [m + "  " + Menu[m] for m in Menu]  

var=StringVar()
var.set(choices[0])  
display_text.set(choices[0]) 
popupMenu = OptionMenu(root, var, *choices, command = OptionMenu_Select)
popupMenu.grid(row=1, column=1)

root.mainloop()

如果您 运行 终端中的代码,那么当您在选项菜单中选择一个项目时,您应该会看到异常:

TypeError: OptionMenu_Select() takes 0 positional arguments but 1 was given

这是因为 OptionMenucommand 选项的回调需要一个参数,选择的项目,但是你的函数没有参数。

修改函数如下:

def OptionMenu_Select(val):
   #display_text.set(var.get())
   # just use the passed argument
   display_text.set(val)