这是因为您在lambda中使用了相同的变量
我想在tkinter中用滚动条在循环中创建多个选项卡。不知怎的,滚动条只在最后一个选项卡中工作,代码如下:
for i in range(ParameterTabNumber):
z=ParameterTabs[i]
FrameParametersMain=Frame(MainNotebook, background="#FFFFFF", width=200, height=150)
FrameParametersMain.pack()
MainNotebook.add(FrameParametersMain, text=str(z))
my_FrameParametersMain.append(FrameParametersMain)
canvasParameters = Canvas(FrameParametersMain, highlightthickness=0,bg='#FFFFFFF')
canvasParameters.pack(side=LEFT, fill=BOTH, expand=1)
my_CanvasParameters.append(canvasParameters)
scrollbarParameters = Scrollbar(FrameParametersMain, orient=VERTICAL, command=canvasParameters.yview)
scrollbarParameters.pack(side=RIGHT, fill=Y)
my_scrollbarParameters.append(scrollbarParameters)
FrameParameters = Frame(canvasParameters)
my_TopTabs.append(FrameParameters)
canvasParametersWidgits = Canvas(FrameParameters, highlightthickness=0,bg='#FFFFFF',width=1700, height=1000)
canvasParametersWidgits.pack()
canvasParameters.create_window((0,0), window=FrameParameters, anchor="nw")
canvasParameters.configure(yscrollcommand=scrollbarParameters.set)
canvasParameters.bind('<Configure>',lambda e: canvasParameters.configure(scrollregion = canvasParameters.bbox("all")))
有人能帮我把这件事做好吗?
Vielen Dank。
canvasParameters
。您应该使用e.widget
:
canvasParameters.bind('<Configure>',lambda e: e.widget.configure(scrollregion = e.widget.bbox("all")))