zoukankan      html  css  js  c++  java
  • GUI tkinter (pack、grid、place)布局篇

    """
    1、其实我们已经接触过 tkinter 的一种布局,就是 pack 布 局,它非常简单,我们不用做过多的设置,直接使用一个 pack 函数就可以了。
    2、grid 布局:grid 可以理解为网格,或者表格,它可以把 界面设置为几行几列的网格,我们在网格里插入我们想要 的元素。
    这种布局的好处是不管我们如何拖动窗口,相对 位置是不会变化的,而且这种布局也超简单。
    3、place 布局:它直接使用死板的位置坐标来布局,这样做 的最大的问题在于当我们向窗口添加一个新部件的时候, 又得重新测一遍数据,
    且我们不能随便地变大或者缩小窗口,否则,可能会导致混乱。
    """

    # pack布局
    """
    1、pack函数布局的时候,默认先使用的放到上面,然后依次向下排列,默认方式它会给我们的组件一个自认为合适的位置和大小。
    2、pack函数也可以接受几个参数,side参数,指定了它停靠在哪个方向,可以为LEFT,TOP,RIGHT,BOTTOM,分别代表左,上,右,下,
    它的fill参数可以是X,Y,BOTH,NONE即在水平方向填充,竖直方向填充,水平和竖直方向填充和不填充。
    3、它的expand参数可以是YES 和 NO,它的anchor参数可以是N,E,S,W(这里的NESW分别表示北东南西,这里分别表示上右下左)以及他们的组合或者是CENTER(表示中间)
    4、它的ipadx表示的是内边距的x方向,它的ipady表示的是内边距的y的方向,padx表示的是外边距的x方向,pady表示的是外边距的y方向。
    """

    from tkinter import *

    root = Tk()
    Button(root,text= "A").pack(side = LEFT, expand = YES, fill = Y)
    Button(root,text= "B").pack(side = TOP, expand = YES, fill = BOTH)
    Button(root,text= "C").pack(side = RIGHT, expand = YES, fill = NONE,anchor = NE)
    Button(root,text= "D").pack(side = LEFT, expand = NO, fill = Y)
    Button(root,text= "E").pack(side = TOP, expand = NO, fill = BOTH)
    Button(root,text= "F").pack(side = BOTTOM, expand = YES)
    Button(root,text= "G").pack(anchor= SE)

    root.mainloop()
    运行结果如下:

     # grid布局

    """
    1、使用grid布局的时候,我们使用grid函数,在里面指定两个参数,用row表示行,用column表示列,其中值得注意的是row和column的编号都从0开始。
    2、grid函数还有个sticky参数,它可以用N,E,S,W表示上右下左,它决定了这个组件是从哪个方向开始的。
    3、grid布局直接用后面的行和列的数字来指定了它位于哪个位置,而不必使用其他参数。
    5、grid函数也支持诸如ipadx,ipady,padx,pady,他们的意思和pack函数一样,默认边距是0。
    6、它还支持参数比如rowspan,表示跨越的行数,columnspan表示跨越的列数。
    7、它还有一些属性,可以在以后慢慢使用。
    """
    from tkinter import *

    root = Tk()
    Label(root,text = "账号:").grid(row = 0, sticky = W)
    # Entry 表示“输入框”
    Entry(root).grid(row = 0, column = 1, sticky = E)

    Label(root,text = "密码:").grid(row = 1, sticky = W)
    Entry(root).grid(row = 1, column = 1, sticky = E)

    Button(root,text = "登录").grid(row = 2, column = 1, sticky = E)
    root.mainloop()
    运行结果如下:
     


    # place布局

    """
    1、它使用place函数,它分为绝对布局和相对布局,绝对布局使用x和y参数,相对布局使用relx,rely,relheight和relwidth参数。
    2、该方法不推荐大家使用。
    """
  • 相关阅读:
    IDEA中项目编码格式设置
    font awesome 页面小图标
    ffmpeg无损MP4转TS 及bat批量脚本
    Mysql超百万数据的导入导出
    查询流水表中所有用户最后一条和第一条记录
    css样式实现网页全黑白
    jsp中二维码展示及异步轮询查询
    支付宝当面付对接
    微信native支付对接
    Java和python实现斐波那契数列的感触
  • 原文地址:https://www.cnblogs.com/jerryspace/p/9836034.html
Copyright © 2011-2022 走看看