Python Tkinter Button


The Button widget is used to add buttons in a Python application. These buttons can display text or images that convey the purpose of the buttons. You can attach a function or a method to a button which is called automatically when you click the button.


Here is the simple syntax to create this widget −

w = Button ( master, option=value, ... )


  • master: This represents the parent window.

  • options: Here is the list of most commonly used options for this widget. These options can be used as key-value pairs separated by commas.

activebackgroundBackground color when the button is under the cursor.
activeforegroundForeground color when the button is under the cursor.
bdBorder width in pixels. Default is 2.
bgNormal background color.
commandFunction or method to be called when the button is clicked.
fgNormal foreground (text) color.
fontText font to be used for the button's label.
heightHeight of the button in text lines (for textual buttons) or pixels (for images).
highlightcolorThe color of the focus highlight when the widget has focus.
imageImage to be displayed on the button (instead of text).
justifyHow to show multiple text lines: LEFT to left-justify each line; CENTER to center them; or RIGHT to right-justify.
padxAdditional padding left and right of the text.
padyAdditional padding above and below the text.
reliefRelief specifies the type of the border. Some of the values are SUNKEN, RAISED, GROOVE, and RIDGE.
stateSet this option to DISABLED to gray out the button and make it unresponsive. Has the value ACTIVE when the mouse is over it. Default is NORMAL.
underlineDefault is -1, meaning that no character of the text on the button will be underlined. If nonnegative, the corresponding text character will be underlined.
widthWidth of the button in letters (if displaying text) or pixels (if displaying an image).
wraplengthIf this value is set to a positive number, the text lines will be wrapped to fit within this length.


Following are commonly used methods for this widget −

flash()Causes the button to flash several times between active and normal colors. Leaves the button in the state it was in originally. Ignored if the button is disabled.
invoke()Calls the button's callback, and returns what that function returns. Has no effect if the button is disabled or there is no callback.


Try the following example yourself −

import Tkinter
import tkMessageBox

top = Tkinter.Tk()

def helloCallBack():
   tkMessageBox.showinfo( "Hello Python", "Hello World")

B = Tkinter.Button(top, text ="Hello", command = helloCallBack)


When the above code is executed, it produces the following result −

TK Button