如何固定滚动条,使其从上到下伸展?

2024-05-19 13:42:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在画布中创建一个框架,我需要能够滚动框架的内容

我开始知道滚动条不能添加到框架中,所以我正在创建一个画布,以便可以附加滚动条。但是在创建滚动条时,它会在一个角落中显示得更小。我需要一个解决办法。 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')))

所以,我希望有一个标签在顶部中心(北)我的根屏幕和滚动条应该能够滚动整个屏幕的内容


Tags: 框架config内容屏幕画布columnrootgrid
1条回答
网友
1楼 · 发布于 2024-05-19 13:42:45

因为在row=0中有scrollbar,在row=1中有canvas。你必须使canvasscrollbar在同一个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()

相关问题 更多 >