Python Tkinter不显示下拉列表值

Python Tkinter不显示下拉列表值,python,tkinter,drop-down-menu,typeerror,Python,Tkinter,Drop Down Menu,Typeerror,第一次使用下拉菜单。非常基本 from tkinter import * from PIL import ImageTk, Image root = Tk() root.title("Drop down menus") root.iconbitmap("D:/de_clutter/comdes/tkinter/images/__icon_test.ico") clicked = StringVar() clicked.set("Saber&q

第一次使用下拉菜单。非常基本

from tkinter import *
from PIL import ImageTk, Image

root = Tk()
root.title("Drop down menus")
root.iconbitmap("D:/de_clutter/comdes/tkinter/images/__icon_test.ico")

clicked = StringVar()
clicked.set("Saber")
def Choice():
    l1 = Label(root, text = clicked.get()).pack()

drop = OptionMenu(root, clicked, "Saber", "Archer", "Assasin", "Lancer", "Berserker", "Caster", "Rider", command = Choice)
drop.pack()


mainloop()
我想让它说出我选的。例如,如果我在下拉菜单中选择“Archer”,我希望它显示在我选择Archer的下方。相反,它给了我一个类型错误:

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

错误信息非常清楚
Choice()
不接受,但单击按钮时正在传递参数
def Choice(*args)
允许Choice接受参数。以下是更正后的代码:

from tkinter import *
from PIL import ImageTk, Image

root = Tk()
root.title("Drop down menus")
root.iconbitmap("D:/de_clutter/comdes/tkinter/images/__icon_test.ico")

clicked = StringVar()
clicked.set("Saber")

def Choice(*args):
    l1 = Label(root, text = clicked.get()).pack()

drop = OptionMenu(root, clicked, "Saber", "Archer", "Assasin", "Lancer", "Berserker", "Caster", "Rider", command=Choic
drop.pack()


mainloop()

选项菜单的回调需要一个参数:所选的值。@acw1668这是什么意思?我该如何更改它呢?这意味着您应该使用
def Choice(value):
来代替它,您可以使用
value
而无需调用
clicked.get()
@acw1668这太奇怪了,为什么在复选框和单选按钮中您不需要它时,选项菜单只有这种方式呢这是
tkinter
的设计。