For some reason the "transient()" is not enough to center the window.
I was looking the code of the msgbox.tcl (Messagebox)
and there is a command
::tk::PlaceWindow $w widget $data(-parent)
Using this command it centers the dialog e.g.
root = tk.Tk()
t2 = tk.Toplevel(root)
t2.transient(root)
tk.Label(t2, text='This is a transient window of root').pack(padx=10, pady=10)
# root.tk.call("::tk::PlaceWindow", t2, "widget", root)
root.mainloop()
as is the dialog is centered wrt the screen,
when you uncomment the PlaceWindow command it is properly placed on top of the
root window
________________________________
From: Tkinter-discuss
[[email protected]] on behalf of
Vasilis Vlachoudis [[email protected]]
Sent: Tuesday, February 22, 2022 09:42
To: [email protected]
Subject: [Tkinter-discuss] How to center tkDialog
Hi all,
when using the tkDialogs.Dialog(), it always appears centered in the screen
and not as on-top/transient of the master window.
In contrast with the other dialogs it doesn't seem to respect the
parent=
any ideas on how to center it?
Vasilis
_______________________________________________
Tkinter-discuss mailing list
[email protected]
https://mail.python.org/mailman/listinfo/tkinter-discuss