Python Tkinter菜单按钮错误
我对这个小部件很困惑,有人能修复它吗Python Tkinter菜单按钮错误,python,tkinter,Python,Tkinter,我对这个小部件很困惑,有人能修复它吗 from Tkinter import * master = Tk() mytext = StringVar() mytext.set("DEFAULT") def test_function(evt): mb.menu.delete(0, END) for i in range(20): mb.menu.add("command", label='%s'%i, command= lambda : mytext.set("%s"%i))
from Tkinter import *
master = Tk()
mytext = StringVar()
mytext.set("DEFAULT")
def test_function(evt):
mb.menu.delete(0, END)
for i in range(20):
mb.menu.add("command", label='%s'%i, command= lambda : mytext.set("%s"%i))
mb= Menubutton (master, text="Test", relief=RAISED )
mb.menu = Menu ( mb, tearoff = 0 )
mb["menu"] = mb.menu
mb.bind('<Button-1>', test_function)
mb.grid(row = 0, column=1)
Label(master, textvariable=mytext).grid(row = 0, column=0)
master.mainloop()
从Tkinter导入*
master=Tk()
mytext=StringVar()
mytext.set(“默认值”)
def测试_功能(evt):
mb.menu.delete(0,结束)
对于范围(20)内的i:
mb.menu.add(“命令”,标签=“%s”%i,命令=lambda:mytext.set(“%s”%i))
mb=菜单按钮(主控,text=“测试”,relief=升起)
mb.menu=menu(mb,tearoff=0)
mb[“菜单”]=mb.menu
mb.bind(“”,test_函数)
mb.grid(行=0,列=1)
标签(主,textvariable=mytext).grid(行=0,列=0)
master.mainloop()
mytext
选择按钮时始终显示列表的结尾,如何解决它?mb.menu.add(“命令”,标签=“%s”%i,命令=lambda:mytext.set(“%s”%i))
命令中的i
此处的lambda绑定到i
的最后一个值,而不是调用add
时的值
通过将其设为默认参数,可以使其提前绑定:
mb.menu.add(“命令”,标签=“%s”%i,命令=lambda i=i:mytext.set(“%s”%i))