在tkinter中使用滚动条在循环中创建多个选项卡



我想在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。

这是因为您在lambda中使用了相同的变量canvasParameters。您应该使用e.widget
canvasParameters.bind('<Configure>',lambda e: e.widget.configure(scrollregion = e.widget.bbox("all")))

最新更新