zoukankan      html  css  js  c++  java
  • python tkinter 布局

    pack布局

     pack 函数默认先使用的放到上面,然后依次向下排,水平位置居中(相对父窗口)

     pack  参数 [ 参数值必须大写 ]

      side:按扭停靠在窗口的哪个位置 

       left:左 、 top: 上 、right: 右、botton:下

      fill:填充

       x:水平方向填充、y:竖直方向填充、both:水平和竖直方向填充、none:不填充

       expand:是否扩展空白区

       yes:扩展整个空白区、no:不扩展     

      anchor:位置

        N:北  下、E:东  右、S:南 下、W:西 左、CENTER:中间 

     padx: x方向的外边距

     pady: y方向的外边距

     ipadx: x方向的内边距

     ipady: y方向的内边距 

    from tkinter import *
    root = Tk()
    Button(root,text='G').pack(anchor=E,padx=20)
    root.mainloop()

     grid 布局

     grid 函数也支持诸如 ipadx,ipady,padx,pady,它们 的意思和 pack 函数是一样的,默认边距是 0;

     grid 布局是网格格式 ,用 row 表示行,用 column 表示列,其中值得 注意的是 row 和 column 的编号都从 0 开始

     grid 参数 

      row 表示行

      column 表示列  

      sticky:它决定了这个组件是从哪个方向开始的

        N:北 上、E:东 右、S:南 下、W:西 左

      rowspan :  跨越(合并)的行数

      columnspan:  跨越(合并)的列数

    from tkinter import *
    
    tk=Tk()
    var=IntVar()
    
    #标签控件,显示文本和位图,展示在第一行
    Label(tk,text="First").grid(row=0,sticky=E)#靠右
    Label(tk,text="Second").grid(row=1,sticky=W)#第二行,靠左
    
    #输入控件
    Entry(tk).grid(row=0,column=1,padx=10,pady=10)
    Entry(tk).grid(row=1,column=1)
    
    #多选框插件
    button=Checkbutton(tk,text="Precerve aspect",variable=var)
    button.grid(row=2,columnspan=2,sticky=W)
    
    #插入图片
    photo=PhotoImage(file="wm.png")
    label=Label(image=photo)
    label.grid(row=0,column=2,rowspan=2,columnspan=2,
               sticky=W+E+N+S, padx=5, pady=5)#合并两行,两列,居中,四周外延5个长度
    
    #按钮控件
    button1=Button(tk,text="Zoom in")
    button1.grid(row=2,column=2)
    button2=Button(tk,text="Zoom out")
    button2.grid(row=2,column=3)
    
    
    #主事件循环
    mainloop()

    place 布局

      place 最简单最灵活的一种布局,使用组件坐标来放置组件的位置。但是不太推荐使用,在不同分辨率下,界面往往有较大差异。  

      place 参数   

    anchor:位置,默认值为 NW 同pack布局 

    x、y: 组件左上角的x、y坐标 整数,默认值0 绝对位置坐标,单位像素

    relx、rely :组件相对于父容器的x、y坐标 0~1之间浮点数 相对位置,0.0表示左边缘(或上边缘),1.0表示右边缘(或下边缘)

    width、height :组件的宽度、高度 非负整数 单位像素

    relwidth、relheight :组件相对于父容器的宽度、高度 0~1之间浮点数 与relx(rely)取值相似

    bordermode: 如果设置为INSIDE,组件内部的大小和位置是相对的,不包括边框;如果是OUTSIDE,组件的外部大小是相对的,包括边框 INSIDE、OUTSIDE(默认值INSIDE) 可以使用常量INSIDE、OUTSIDE,也可以使用字符串形式”inside”、”outside”

    from tkinter import *
    root = Tk()
    Button(root,text='G').place(x=20,y=30,width=30,height=40,bordermode=INSIDE)
    root.mainloop()

     相关文章:Python GUI之tkinter布局管理

  • 相关阅读:
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    how to use automapper in c#, from cf~
  • 原文地址:https://www.cnblogs.com/xuey/p/9293772.html
Copyright © 2011-2022 走看看