Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Tkinter – วิธีจัดตำแหน่ง topLevel() widget เทียบกับ root window

ใน 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 แยกจากหน้าต่างหลัก

Python Tkinter – วิธีจัดตำแหน่ง topLevel() widget เทียบกับ root window