02_布局pack-grid-place

1,布局管理器

pack 按添加顺序排列组件
grid 按行/列形式排列组件
place 自定义指定组件的大小和位置

2,pack

import tkinter as tk

window = tk.Tk()
window.title('hello thinter')
window.geometry('800x600')
tk.Label(window, text="Red", bg="red", fg="white").pack(fill="both")
tk.Label(window, text="Green", bg="green", fg="black").pack(side='bottom')

window.mainloop()

1,pack()参数

选项 含义
side 1,指定组件的放置位置
2,默认值"top",其他选项"left","bottom","right"
fill 1,指定填充pack分配的空间
2,默认值是NONE,表示保持子组件的原始尺寸
3,还可以使用的值有:"x”(水平填充),"y(垂直填充),both”(水平和垂直填充)
expand 1,指定是否填充父组件的额外空间
2,默认值是False
ipadx、ipady 指定水平、垂直方向上的内边距
padx、pady 指定水平、垂直方向的外边距
anchor 1,控制组件在pack分配的空间中的位置
2,默认"center"来定位,其他"n","ne","e","se","s","sw”,"w","nw"(东西南北)
in_ 1,将该组件放到该选项指定的组件中
2,指定的组件必须是该组件的父组件

2,pack_configure()

-- 与pack() 一样

3,pack_forget()

-- 将组件从屏幕中“删除”,并没有销毁该组件,只是隐藏
-- 可以通过 pack 或其他布局管理器显示“删除”的组件

4,pack_info()

-- 以字典的形式返回当前 pack 的选项

5,pack_propagate(flag)

-- 默认值是开启(flag = True),父组件会自动调节尺寸以容纳所有子组件
-- 该方法仅适用于父组件

6,pack_slaves()

-- 以列表的形式返回该组件的所有子组件
-- 该方法仅适用于父组件

3,grid

import tkinter as tk

window = tk.Tk()
window.title('hello thinter')
window.geometry('400x300')
tk.Label(window, text="用户名").grid(row=0)
tk.Label(window, text="密码").grid(row=1)
tk.Entry(window).grid(row=0, column=1)	# 指定放置 第 0 行,第 1 列
tk.Entry(window, show="*").grid(row=1, column=1)
tk.Button(text="提交", width=8, height=2).grid(row=2, columnspan=2)  # columnspan=2 跨2列,即占2列

window.mainloop()
选项 含义
row、column 指定组件插入的行(row=0,第1行)、列
rowspan、columnspan 指定用多少行、列显示该组件 (跨行/列,即该组件占用多少行/列)
ipadx、ipady 指定水平、垂直方向上的内边距
padx、pady 指定水平、垂直方向的外边距
sticky 1,控制组件在grid分配的空间中的位置
2,不指定默认居中,用"n","ne","e","se","s","sw”,"w","nw"来定位(东西南北)
3,用加号(+)表示拉长填充,例"n”+"s”表示将组件垂直拉长填充网格
in_ 1,将该组件放到该选项指定的组件中
2,指定的组件必须是该组件的父组件

4,place

import tkinter as tk

window = tk.Tk()
window.title('hello thinter')
window.geometry('600x400')
tk.Label(window, text="用户名").place(x=0,y=0)
tk.Label(window, text="密码").place(x=0,y=50)
tk.Entry(window).place(x=50,y=0)
tk.Entry(window, show="*").place(x=50,y=50)

window.mainloop()
选项 含义
x、y 1,指定该组件的水平、垂直位置(像素)
2,如同时指定了relx、rely选项,优先实现relx、rely
width、height 指定该组件宽度、高度(像素)
bordermode 指定边框模式("inside"或"outside"),默认"inside"
relx、rely 1,指定该组件相对于父组件的水平、垂直位置
2,取值范围0.0~1.0
relwidth、relheight 1,指定该组件相对于父组件的宽度、高度
2,取值范围0.0~1.0
anchor 1,控制组件在place分配的空间中的位置
2,默认"nw"来定位,其他"center","n","ne","e","se","s","sw”,"w","nw"(东西南北)
in_ 1,将该组件放到该选项指定的组件中
2,指定的组件必须是该组件的父组件
posted @   interesting5319  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示