我想在画布中创建框架,并且需要能够滚动框架的内容。
我知道不能将滚动条添加到框架中,因此我正在创建一个画布用于附加滚动条,但是在创建滚动条时它在角落变小了。我需要解决方案来解决它。 Screenshot of my scroll bar problem
root = Tk()
root.geometry("1000x1000")
root.title("Title")
root.grid_rowconfigure(2, weight=1)
root.columnconfigure(0, weight=1)
canv=Canvas(root,width=600, height=600, background='blue')
vsb = Scrollbar(root, orient="vertical", command=canv.yview)
canv.config(yscrollcommand=vsb.set)
vsb.grid(row=0,column=1,sticky="ns")
canv.config(scrollregion=(0, 0,600,1000))
canv.grid(row=1, column=0)
canv.bind('<Configure>',canv.config(scrollregion=canv.bbox('all')))
因此,我希望在根屏幕的顶部中心(北)上有一个标签,并具有一个滚动条,该滚动条应能够滚动整个屏幕的内容。
答案 0 :(得分:1)
因为您在scrollbar
中有row=0
,在canvas
中有row=1
。您必须在相同的canvas
中创建scrollbar
和row
,但要使用两个不同的columns
。试试这个:
from tkinter import *
root = Tk()
root.geometry("1000x1000")
root.title("Title")
root.grid_rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)
root.columnconfigure(1, weight=0)
canv = Canvas(root, width=600, height=600, background='blue')
vsb = Scrollbar(root, orient="vertical", command=canv.yview)
canv.config(yscrollcommand=vsb.set)
vsb.grid(row=0, column=1, sticky="ns")
canv.config(scrollregion=(0, 0, 600, 1000))
canv.grid(row=0, column=0) # row = 0
canv.bind('<Configure>', canv.config(scrollregion=canv.bbox('all')))
root.mainloop()