首页 > 其他 > 详细

Tkinter Frame容器grid布局并使用Scrollbar滚动

时间:2021-04-30 14:57:23      阅读:256      评论:0      收藏:0      [点我收藏+]

Tkinter Frame容器grid布局并使用Scrollbar滚动

原理:由于只有Scrollbar只能和Text、Canvas、Listbox一起使用,因此将Canvas作为父容器,通过滚动Canvas来滚动Frame。

from tkinter import *

if __name__ == ‘__main__‘:
    # 创建主窗口
    root = Tk()
    root.geometry("20x200+100+100")
    # Canvas,Scrollbar放置在主窗口上
    canvas = Canvas(master=root)
    scro = Scrollbar(master=root)
    scro.pack(side=‘right‘,fill=‘y‘)
    canvas.pack(side=‘right‘)
    # Frame作为容器放置组件
    frame = Frame(canvas)
    frame.pack()
    # 将Frame添加至Canvas上
    canvas.create_window((0,0),window=frame,anchor="nw")
    # 添加按钮,以grid布局
    button1 = Button(master=frame,text=‘1‘).grid(row=1,column=0)
    button2 = Button(master=frame,text=‘2‘).grid(row=2,column=0)
    button3 = Button(master=frame,text=‘3‘).grid(row=3,column=0)
    button4 = Button(master=frame,text=‘4‘).grid(row=4,column=0)
    button5 = Button(master=frame,text=‘5‘).grid(row=5,column=0)
    button6 = Button(master=frame,text=‘x‘).grid(row=6,column=0)
    button7 = Button(master=frame,text=‘y‘).grid(row=7,column=0)
    button8 = Button(master=frame,text=‘z‘).grid(row=8,column=0)
    button9 = Button(master=frame,text=‘@‘).grid(row=9,column=0)
    button10 = Button(master=frame,text=‘#‘).grid(row=10,column=0)
    # 更新Frame大小,不然没有滚动效果
    frame.update()
    # 将滚动按钮绑定只Canvas上
    canvas.configure(yscrollcommand=scro.set, scrollregion=canvas.bbox("all"))
    scro.config(command=canvas.yview)

    root.mainloop()

最后效果

技术分享图片

技术分享图片

Tkinter Frame容器grid布局并使用Scrollbar滚动

原文:https://www.cnblogs.com/lolybj/p/14721659.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!