ใน Tkinter วิджชั่น toplevel ใช้สร้างหน้าต่างป๊อปอัปโมดัล หน้าต่างป๊อปอัปที่สร้างโดย toplevel window ทำงานคล้ายกับหน้าต่างเริ่มต้นของแอปพลิเคชัน Tkinter มันสามารถมีวิджชั่นได้ เช่น text widget, button widget, canvas widget, frame เป็นต้น
ขนาดและตำแหน่งของ toplevel window สามารถตัดสินใจได้โดยทำให้ยืดหยุ่นทั่วหน้าจอ ใน toplevel window วิджชั่นทั้งหมดจะถูกวางบนหน้าต่างอื่นๆ เสมอ
คุณสามารถใช้ root.winfo_x() และ root.winfo_y() เพื่อรับตำแหน่งของ root window จากนั้น คุณสามารถใช้เมธอด geometry เพื่อจัดตำแหน่ง toplevel widget เทียบกับ root window การทำให้ toplevel widget เทียบกับ root window ป้องกันการทับซ้อนของสองหน้าต่างและแยกพวกมัน มาดูตัวอย่างเพื่อสาธิตการทำงาน
ตัวอย่าง
# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
# สร้างอินสแตนซ์เฟรมหรือหน้าต่าง Tkinter
win = Tk()
# กำหนดขนาดหน้าต่าง
win.geometry("700x300")
win.title("Root Window")
# สร้าง toplevel window
top = Toplevel(win)
top.geometry("400x200")
# สร้าง Label ใน toplevel widget
Label(top, text="This is a Toplevel window", font="Calibri, 12").pack()
x = win.winfo_x()
y = win.winfo_y()
top.geometry("+%d+%d" % (x+200, y+200))
# เก็บ toplevel window ไว้หน้าต่าง root
top.wm_transient(win)
top.mainloop()
ผลลัพธ์
การรันโค้ดด้านบนจะแสดง toplevel window แยกจากหน้าต่างหลัก
