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,指定的组件必须是该组件的父组件 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理