python tkinter 布局_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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值