บางครั้ง Tkinter Frame จะปรับขนาดอัตโนมัติตามขนาดของ Widgets เพื่อทำให้ Frame มีขนาดคงที่ เราต้องหยุดไม่ให้ Widgets ปรับขนาด Frame มี 3 วิธี:
เมธอด Boolean pack_propagate(True/False) ป้องกันการปรับขนาด Frame จาก Widget
เมธอด resizable(x, y) ป้องกันไม่ให้หน้าต่างปรับขนาดได้
ค่า Pack(fill, expand) ที่ปรับขนาดหน้าต่างให้เป็นขนาดที่กำหนดใน geometry
โดยพื้นฐานแล้ว Widgets ทั้งหมดภายใน Tkinter Frame จะตอบสนอง (responsive) และไม่สามารถปรับขนาดได้
ตัวอย่าง
from tkinter import *
win = Tk()
win.geometry("700x300")
# Don't allow the screen to be resized
win.resizable(0, 0)
label = Label(win, text="Select an option", font=('Times New Roman', 12))
label.pack_propagate(0)
label.pack(fill="both", expand=1)
def quit():
win.destroy()
# Create two buttons
b1 = Button(win, text="Continue")
b1.pack_propagate(0)
b1.pack(fill="both", expand=1)
b2 = Button(win, command=quit, text="Quit")
b2.pack_propagate(0)
b2.pack(fill="both", expand=1)
win.mainloop()
ผลลัพธ์
การรันโค้ดข้างต้นจะทำให้หน้าต่างมีขนาดคงที่และไม่สามารถปรับขนาดได้
