zoukankan      html  css  js  c++  java
  • 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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    洛谷P1057传球游戏(逆向递推递归+记忆化)
    洛谷P1433吃奶酪(正向暴力递归,回溯更新)
    洛谷P1434滑雪(逆向图的遍历搜索递归+记忆化,最长路问题)
    洛谷P1192台阶问题(逆向递推递归dfs+记忆化)
    洛谷p1025数的划分(正向暴力递归,数学排列与组合问题)
    洛谷P1141 01迷宫(图的遍历搜素递归dfs或bfs,连痛块回溯更新问题,记忆化或者并查集根结点)
    Git 版本更新--Windows
    plop-templates自动新建项目文件
    前端-随机生成测试数据-mockjs
    cookie、seseionStorage、localStorage的区别
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12147625.html
Copyright © 2011-2022 走看看