使用滚动条调整Python Tkinter画布大小

0 投票
1 回答
1004 浏览
提问于 2025-04-18 03:29

编辑:我想让 canvas1 的大小可以通过 scrollbar 来调整。当我运行这个时,只有 canvas1 是可见的,框架里没有地方留给 canvas2。我希望 canvas1 在框架中的大小大约是 300*400,当我滚动时,可以看到整个框架(1000*800)。

我想构建一个包含两个画布的框架,但问题是我不知道怎么把第一个画布放在滚动条里。在下面的代码中,画布的大小太大了,所以第二个画布在框架中没有显示出来。我想要的是把第一个画布的大小固定在滚动条内。我对 tkinter 还很陌生,所以不知道该怎么做。非常感谢你的帮助。

root=Tk()

master=Frame(root,width=300,height=300)
master.grid(row=0,column=0)

xscrollbar = Scrollbar(master, orient=HORIZONTAL)
xscrollbar.grid(row=1, column=0, sticky=E+W)
yscrollbar = Scrollbar(master)
yscrollbar.grid(row=0, column=1, sticky=N+S)

canvas1=Canvas(master, width=1000, height=800, background='white',xscrollcommand=xscrollbar.set,yscrollcommand=yscrollbar.set)
canvas1.grid(row=0,column=0, sticky=N+S+E+W)
xscrollbar.config(command=canvas1.xview)
yscrollbar.config(command=canvas1.yview)

canvas2=Canvas(master, width=100, height=200, background='pink',xscrollcommand=xscrollbar.set,yscrollcommand=yscrollbar.set)
canvas2.grid(row=2,column=0)

mainloop()

1 个回答

0

你想要做的是把画布的 大小 设置为 300x400,然后把画布的 滚动区域 属性设置为 1000x800。

canvas1 = Canvas(..., width=300, height=400, scrollregion=(0,0,1000,800))

撰写回答