tkinker布局pack 、grid、place

2022-01-05  本文已影响0人  HC2

、布局

1、布局管理器pack

用法:

import tkinter as tk
# 建立窗口
window = tk.Tk()
window.title('hello thinter')
height= window.winfo_screenheight()
width= window.winfo_screenwidth()
window.geometry('800x600+%d+%d'%((width-800)/2,(height-600)/2))
tk.Label(window, text="Red", bg="red", fg="white").pack(fill="x")
tk.Label(window, text="Green", bg="green", fg="black").pack(fill="x")
tk.Label(window, text="Blue", bg="blue", fg="white").pack(fill="x")

window.mainloop()
image.png

展示效果,横向排列

import tkinter as tk
# 建立窗口
window = tk.Tk()
window.title('hello thinter')
height= window.winfo_screenheight()
width= window.winfo_screenwidth()
window.geometry('400x200+%d+%d'%((width-400)/2,(height-200)/2))
tk.Label(window, text="Red", bg="red", fg="white").pack(side="left")
tk.Label(window, text="Green", bg="green", fg="black").pack(side="left")
tk.Label(window, text="Blue", bg="blue", fg="white").pack(side="left")

window.mainloop()
image.png

pack(**options)参数详解

image.png

pack_configure(**options)
-- 跟 pack() 一样

pack_forget()
-- 将组件从屏幕中“删除”
-- 并没有销毁该组件,只是看不到了
-- 可以通过 pack 或其他布局管理器显示已“删除”的组件

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

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

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

2、布局管理器grid

import tkinter as tk
# 建立窗口
window = tk.Tk()
window.title('hello thinter')
height= window.winfo_screenheight()
width= window.winfo_screenwidth()
window.geometry('800x600+%d+%d'%((width-800)/2,(height-600)/2))
tk.Label(window, text="用户名").grid(row=0)
tk.Label(window, text="密码").grid(row=1)
tk.Entry(window).grid(row=0, column=1)
tk.Entry(window, show="*").grid(row=1, column=1)
window.mainloop()
image.png

如果有个按钮想放在中间呢?可以使用跨行或者夸列的功能

import tkinter as tk
# 建立窗口
window = tk.Tk()
window.title('hello thinter')
height= window.winfo_screenheight()
width= window.winfo_screenwidth()
window.geometry('400x200+%d+%d'%((width-400)/2,(height-200)/2))
tk.Label(window, text="用户名").grid(row=0)
tk.Label(window, text="密码").grid(row=1)
tk.Entry(window).grid(row=0, column=1)
tk.Entry(window, show="*").grid(row=1, column=1)
tk.Button(text="提交",width=10,height=2).grid(row=2,columnspan=2) #columnspan=2 跨2列
window.mainloop()
image.png

grid(**options)参数详解

image.png

3、布局管理器place

通过偏移量进行布局

import tkinter as tk
# 建立窗口
window = tk.Tk()
window.title('hello thinter')
height= window.winfo_screenheight()
width= window.winfo_screenwidth()
window.geometry('400x200+%d+%d'%((width-400)/2,(height-200)/2))
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()

相对父组建进行布局

import tkinter as tk
# 建立窗口
window = tk.Tk()
window.title('hello thinter')
height= window.winfo_screenheight()
width= window.winfo_screenwidth()
window.geometry('400x200+%d+%d'%((width-400)/2,(height-200)/2))
tk.Label(window, text="用户名").place(relx=0, rely=0)
tk.Entry(window).place(relx=0.2, rely=0)
tk.Label(window, text="密码").place(relx=0, rely=0.2)
tk.Entry(window, show="*").place(relx=0.2, rely=0.2)

window.mainloop()

place(**options)参数详解

image.png
上一篇下一篇

猜你喜欢

热点阅读