What is the difference between the widgets of tkinter and tkinter.ttk in Python?

TkinterPythonServer Side ProgrammingProgramming

tkinter.ttk is a module that is used to style the tkinter widgets. Just like CSS is used to style an HTML element, we use tkinter.ttk to style tkinter widgets.

Here are the major differences between tkinter widget and tkinter.ttk

  • Tkinter widgets are used to add Buttons, Labels, Text, ScrollBar, etc., however, tkinter.ttk supports a variety of widgets as compared to tkinter widgets.

  • Tkinter.ttk doesn't support Place, Pack() and Grid(), thus it is recommended to use tkinter widget with ttk.

  • Ttk has many features and configurations that extend the functionality of a native application and make it look more modern.

  • Tkinter widget is a native widget in the tkinter library, however ttk is a themed module.

  • To override the basic Tk widget in tkinter, use "from tkinter.ttk import *"


In the following example, we have styled a tkinter native widget using tkinter.ttk module. We will create a button that will change the background color of the text widget.

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

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

#Set the geometry

#Add a class to style the tkinter widgets
style = ttk.Style()
style.configure('TEntry', foreground = 'red')

#Define a function to change the text color
def change_color():

#Create a text widget
text=Label(win,text="This is a New Text",foreground="white",
background="blue",font=('Aerial bold',20))

#Create a Button widget
Button(win, text= "Click Here", command= change_color).pack(pady=10)


Running the above code will produce the following output −

Now, click the "Click Here" button. It will change the background color of the text widget to Red.

Updated on 26-Mar-2021 10:18:53