zoukankan      html  css  js  c++  java
  • Tkinter Frame容器grid布局并使用Scrollbar滚动

    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()
    

    最后效果

  • 相关阅读:
    jQuery禁用或启用
    ASP.NET MVC一次删除多笔记录
    在你的ASP.NET MVC中使用查找功能
    Get radio selected value
    绑定一个值给radio
    ASP.NET MVC实现权限控制
    为Guid数据类型的属性(property)赋值
    Razor语法中绑定一个值给checkbox
    判断IEnumerable<T>集合中是否包含有T对象
    SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
  • 原文地址:https://www.cnblogs.com/lolybj/p/14721659.html
Copyright © 2011-2022 走看看