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 [tkinter-discuss-bounces+vasilis.vlachoudis=cern...@python.org] on behalf of Vasilis Vlachoudis [vasilis.vlachou...@cern.ch] Sent: Tuesday, February 22, 2022 09:42 To: tkinter-discuss@python.org 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 Tkinter-discuss@python.org https://mail.python.org/mailman/listinfo/tkinter-discuss