# 主框架
Cal_MainFrame = tk.Frame(Window, bg='White', width=500, height=300)
Cal_MainFrame.grid(row=0, column=0)
# 建立滚动条
Scb = tk.Scrollbar(Cal_MainFrame, orient='vertical')
Scb.pack(side='right', fill='y')
# 建立画布
Cal_Canvas = tk.Canvas(Cal_MainFrame, bg='Blue', scrollregion=(0, 0, 1000, 3000), width=500, height=100, yscrollcommand=Scb.set)
# 关联画布与滚动条
Scb.config(command=Cal_Canvas.yview)
Cal_Canvas.config()
Cal_Canvas.pack(side='left', expand=True, fill='both')
for i in range(50):
label = tk.Label(Cal_Canvas, text=i)
label.pack()
建立了滚动条和画布后,滚动条滚动没有效果,求大神指点。
因为你布局Label
使用的是pack
,当然没有效果。
使用:
for i in range(50):
label = tk.Label(Cal_Canvas, text=i)
Cal_Canvas.create_window((0,i*50),window=label)
Cal_Canvas.update()
画布里什么也没有放,滚动条不需要滚动,所以无效。
或者是:你设置的Canvas width和weight参数分别是500和100,但是你设置的滚动区域scrollregion=(0, 0, 1000, 3000)设置了1000和3000,这意味着你设置的滚动区域远远大于画布的尺寸。