When a Python GUI application is designed with Tkinter, widgets (including buttons) require programming so that the underlying application logic can respond to mouse clicks and other actions. Additionally, in order for them to work as intended, widgets need to be positioned intuitively for the user.

Tkinter has three built-in layout managers that use geometric methods to position buttons in an application frame: pack, grid, and place

  • The pack manager organizes widgets in horizontal and vertical boxes that are limited to left, right, top, bottom positions offset from each other.
  • The grid manager locates widgets in a two dimensional grid using row and column relative coordinates.  
  • The place manager places widgets in a two dimensional grid using x and y absolute coordinates.

How to Position Buttons With Pack

Pack() has three options you can use: side, fill, expand.  

  • The side option aligns buttons horizontally.
  • The fill option aligns buttons vertically.
  • The expand option takes up the full height of the frame.

In this example, pack() uses the side option to position buttons in the left, right, top and bottom sections of a frame:

This code will draw four buttons, and the placement of each button is specified by left, top, right, and bottom sections of a frame and are specified here. When you run the code it generates a dialog box with all four buttons at the specified locations.

import tkinter
master=tkinter.Tk()
master.title("pack() method")
master.geometry("450x350")
button1=tkinter.Button(master, text="LEFT")
button1.pack(side=tkinter.LEFT)
button2=tkinter.Button(master, text="RIGHT")
button2.pack(side=tkinter.RIGHT)
button3=tkinter.Button(master, text="TOP")
button3.pack(side=tkinter.TOP)
button4=tkinter.Button(master, text="BOTTOM")
button4.pack(side=tkinter.BOTTOM)master.mainloop()

Learn more about Tkinter and how to install it here.

If you want to take advantage of the latest version of Tkinter, you’ll need to install a version of Python that supports Tcl/Tk 8.5 or greater. This will provide you with the Ttk (Tile extension integrated into Tk), which is required in order to run the current Tk widget set.

There are two other ways of installing a button in Tkinter – find them here.

Other Python Packages For Data Science, Web Development, Machine Learning, Code Quality And Security

ActivePython includes over 400 of the most popular Python packages. We’ve built the hard-to-build packages so you don’t have to waste time on configuration…get started right away! Learn more here.