How can I determine the position of a Toplevel in Tkinter?


To place objects in the middle of a frame, we can use the place method. Let's take an example and see how it's done.

Steps −

  • Import the required libraries and create an instance of tkinter frame.

  • Set the size of the frame using win.geometry method.

  • Next, create a button and label it.

  • Set the position of the buttons using the place method by supplying the x and y coordinate values.

  • Place the center of the widget at a relative x and y position of 0.5 of button widget (relx=0.5, rely=0.5). Set the anchor at the center by supplying "anchor=CENTER"

  • Finally, run the mainloop of the application window.


# Import the Tkinter library
from tkinter import *
from tkinter import ttk

# Create an instance of Tkinter frame
win = Tk()

# Define the geometry
win.title("Main Window")

def toplevel_position():
   print("The coordinates of Toplevel window are:", top.winfo_x(), top.winfo_y())

top = Toplevel(win, height=150, width=300)
top.title("This is the Toplevel Window")
top.attributes('-topmost', 'true')

button = ttk.Button(top, text="Get position", command=toplevel_position), rely=0.5, anchor=CENTER)



When you execute this code, it will show the following output window −

Now, click the "Get position" button and it will print the coordinates of the Toplevel window on the console.

The coordinates of Toplevel window are: 282 105
Updated on 26-Oct-2021 12:45:08