有人可以告诉我我做错了什么吗?滚动条似乎无法反映其绑定到的小部件的区域。
非常感谢。
CardView
答案 0 :(得分:0)
如果画布为空,则没有任何可滚动的内容。滚动条可以正确反映出来。
您必须向Canvas
添加一些内容才能滚动它。
我放了两个大于窗口大小的框架,现在您有了滚动的东西。
将项目放入画布后,您必须使用scrollregion=
。或者,您可以在after()
显示窗口之后使用scrollregion=
来使用tkinter
。
import tkinter as tk
#def resize():
# canvas.configure(scrollregion=canvas.bbox("all"))
root = tk.Tk()
frame1 = tk.Frame(root, width=900, height=800)
frame1.pack(expand=True, fill='both')
canvas = tk.Canvas(frame1, width=900, height= 900)
canvas.pack(side='left', fill='both', expand=True)
vsb = tk.Scrollbar(frame1, orient='vertical')
vsb.pack(fill='y', side='right', expand=False)
vsb.configure(command=canvas.yview)
item_1 = tk.Frame(canvas, bg='red', width=500, height=500)
canvas.create_window(0, 0, window=item_1, anchor='nw')
item_2 = tk.Frame(canvas, bg='green', width=500, height=500)
canvas.create_window(500, 500, window=item_2, anchor='nw')
canvas.configure(yscrollcommand=vsb.set, scrollregion=canvas.bbox("all"))
#root.after(100, resize)
root.mainloop()