Есть ли возможность создать новое окно в tkinter на том же экране, что и его родитель?

Я использую python tkinter в Windows и хочу создать новое окно верхнего уровня на том же экране, что и его родитель. Например, когда у пользователя есть 2 монитора, я хочу создавать каждое новое окно на том же мониторе, что и главное окно приложения.

Есть ли возможность добиться такого результата?


person Bodzio322    schedule 02.09.2019    source источник


Ответы (1)


Вы можете проверить пиксельные координаты родительского окна с помощью winfo_x и winfo_y, а затем создать Toplevel в том же месте.

import tkinter as tk

root = tk.Tk()

def get_geometry():
    top = tk.Toplevel()
    top.geometry(f"+{root.winfo_x()}+{root.winfo_y()}")
    top.title("This is new toplevel")

tk.Button(root,text="Spawn new window",command=get_geometry).pack()

root.mainloop()
person Henry Yik    schedule 02.09.2019