单击选项菜单时无法更新文本框
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
这是因为 OptionMenu
的 command
选项的回调需要一个参数,选择的项目,但是你的函数没有参数。
修改函数如下:
def OptionMenu_Select(val):
#display_text.set(var.get())
# just use the passed argument
display_text.set(val)
我正在尝试将我在选项菜单中的选择显示到文本框。谁能帮我解决这个问题? 当我在选项菜单中单击一个选项时,文本框没有更新。这是我的代码。
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
这是因为 OptionMenu
的 command
选项的回调需要一个参数,选择的项目,但是你的函数没有参数。
修改函数如下:
def OptionMenu_Select(val):
#display_text.set(var.get())
# just use the passed argument
display_text.set(val)