Frame เป็น container จัดกลุ่ม widget Grid geometry manager จัดวางในแถว (row) และคอลัมน์ (column) เหมาะสำหรับฟอร์มและ layout ซับซ้อน
ตัวอย่าง: ฟอร์มลงทะเบียน
from tkinter import *
win = Tk()
win.geometry("700x350")
frame = Frame(win)
def on_key_up():
frame.pack_forget()
win.configure(bg="green4")
Label(win, text=f"Hey {fname.get()} Welcome to TutorialsPoint",
font=('Segoe UI', 18, 'bold'), background="white").pack(pady=30)
Label(frame, text="Registration Form", font=('Helvetica 16 bold'), background="green3").grid(row=5, column=0, pady=30)
frame.pack()
Label(frame, text="First Name").grid(row=7, column=0, padx=5)
fname = Entry(frame)
fname.grid(row=10, column=0, padx=10)
Label(frame, text="Family name").grid(row=12, column=0, padx=5)
sname = Entry(frame)
sname.grid(row=15, column=0, padx=10)
Label(frame, text="Email address").grid(row=17, column=0, padx=5)
email = Entry(frame)
email.grid(row=20, column=0, padx=10)
Label(frame, text="Enter a Password").grid(row=22, column=0, padx=5)
password = Entry(frame, show="*")
password.grid(row=25, column=0, padx=10)
Button(frame, text="Register", command=on_key_up).grid(row=15, column=1, padx=5)
win.mainloop()
ผลลัพธ์
ฟอร์มลงทะเบียนจัดวางด้วย Grid ใน Frame
