• Python连载61-tkinter三种布局


    一、pack布局举例

    #pack布局案例
    
    import tkinter
    
    baseFrame = tkinter.Tk()
    
    #以下代码都是创建一个组件,然后布局
    
    btn1 = tkinter.Button(baseFrame,text="A")
    
    btn1.pack(side=tkinter.LEFT,expand=tkinter.YES,fill=tkinter.Y)
    
    ​
    
    btn2 = tkinter.Button(baseFrame,text="B")
    
    btn2.pack(side=tkinter.TOP,expand=tkinter.YES,fill=tkinter.BOTH)
    
    ​
    
    btn2 = tkinter.Button(baseFrame,text="C")
    
    btn2.pack(side=tkinter.RIGHT,expand=tkinter.YES,fill=tkinter.NONE)
    
    ​
    
    btn2 = tkinter.Button(baseFrame,text="D")
    
    btn2.pack(side=tkinter.LEFT,expand=tkinter.NO,fill=tkinter.Y)
    
    ​
    
    btn2 = tkinter.Button(baseFrame,text="F")
    
    btn2.pack(side=tkinter.BOTTOM,expand=tkinter.YES)
    
    ​
    
    btn2 = tkinter.Button(baseFrame,text="G")
    
    btn2.pack(anchor=tkinter.SE)
    
    ​
    
    baseFrame.mainloop()
    
     

    二、grid布局举例

    1.通用使用方式:组件对象,grid(设置.......)

    2.利用row,column编号,都是从0开始

    3.sticky:NESW表示上下左右,用来决定组件从哪个方向开始

    4.支持ipadx,padx等参数,跟pack函数含义一样

    5.支持rowspan,columnspan,表示跨行,跨列数量

     
    
    #pack布局案例
    
    import tkinter
    
    # baseFrame = tkinter.Tk()
    
    # #以下代码都是创建一个组件,然后布局
    
    # btn1 = tkinter.Button(baseFrame,text="A")
    
    # btn1.pack(side=tkinter.LEFT,expand=tkinter.YES,fill=tkinter.Y)
    
    #
    
    # btn2 = tkinter.Button(baseFrame,text="B")
    
    # btn2.pack(side=tkinter.TOP,expand=tkinter.YES,fill=tkinter.BOTH)
    
    #
    
    # btn2 = tkinter.Button(baseFrame,text="C")
    
    # btn2.pack(side=tkinter.RIGHT,expand=tkinter.YES,fill=tkinter.NONE)
    
    #
    
    # btn2 = tkinter.Button(baseFrame,text="D")
    
    # btn2.pack(side=tkinter.LEFT,expand=tkinter.NO,fill=tkinter.Y)
    
    #
    
    # btn2 = tkinter.Button(baseFrame,text="F")
    
    # btn2.pack(side=tkinter.BOTTOM,expand=tkinter.YES)
    
    #
    
    # btn2 = tkinter.Button(baseFrame,text="G")
    
    # btn2.pack(anchor=tkinter.SE)
    
    #
    
    #
    
    # baseFrame.mainloop()
    
    ​
    
    baseFrame2 = tkinter.Tk()
    
    ​
    
    lb1 = tkinter.Label(baseFrame2,text="账号:")
    
    lb1.grid(row=0,sticky=tkinter.W)
    
    tkinter.Entry(baseFrame2).grid(row=0,column=1,sticky=tkinter.E)
    
    ​
    
    lb2 = tkinter.Label(baseFrame2,text="密码:")
    
    lb2.grid(row=1,sticky=tkinter.W)
    
    tkinter.Entry(baseFrame2).grid(row=1,column=1,sticky=tkinter.E)
    
    ​
    
    button = tkinter.Button(baseFrame2,text="登录").grid(row=2,column=1,sticky=tkinter.E)
    
    ​
    
    baseFrame2.mainloop()

    三、place布局

    1.明确方位的摆放

    2.相对位置布局,随意改变窗口大小会导致混乱。

    3.使用place函数,分为绝对布局和相对布局,绝对布局使用x,y参数

    4.相对布局使用relx.rely,relheight,relwidth.

    四、源码

    D61_ThreeFrameOfTkinter.py

    https://github.com/ruigege66/Python_learning/blob/master/D61_ThreeFrameOfTkinter.py​

    2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    Java 截取目标长度英文单词字符串 要求避免截断单词
    mysql报Fatal error encountered during command execution的解决办法
    PostgreSQL 学习01 Centos7.6安装PostgreSQL10
    Ubuntu14.04 + KinectV2驱动安装 以及 Ros接口(基于网上方法试错 改进版)
    传统定位方法简介--------里程计、IMU惯性传感器以及光电编码器等
    Vue.js 动态绑定class
    MongoDB数据导入导出成csv或者json
    exception 'yiiaseErrorException' with message 'Class 'MongoClient' not found'
    exception 'DOMException' with message 'Invalid Character Error' Php + Mongodb
    浅谈Angular的 $q, defer, promise
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12147625.html
Copyright © 2020-2023  润新知