在用tkinter设计UI时,需要在有限的空间里面堆叠多行元素,此时就需要用到滚动条的效果。案例效果如图:
框架思路:
通过tkinter中的画布canvas与滚动条scrollbar进行联动,并将所有的控件都塞入到画布canvas中。其中有一步对画布大小的设置也很关键,即canvas.config(width=200, height=200) ,大小不合适,会导致显示不全。
最后,我们在运用过程中,还会遇到以下场景,需要用户和UI互动来增加控件。比如设计一个按钮,在用户按下后,自动添加一行新的控件。那么在更新的控件函数中都要加入
frame.update_idletasks()
canvas.config(scrollregion=canvas.bbox(ALL))
这两段来更新滚动条的状态。
框架如下:
from tkinter import *#系统自带的库
# 创建主窗口
root = Tk()
root.geometry("500x500") # 设置窗口大小 注意:是x 不是*
root.resizable(width=False, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
# 创建滚动条
scrollbar = Scrollbar(root)
scrollbar.p