The widgets in tkinter are highly and easily configurable. You have almost complete control over how they look - border widths, fonts, images, colors, etc.

ttk widgets use styles to define how they look, so it takes a bit more work if you want a non-standard button. ttk widgets are also a little under-documented. Understanding the underlying theme and layout engines (layout within the widgets themselves, not pack, grid and place) is a challenge.

Generally speaking, the themed widgets will give you an application that looks more "native", but at the expense of a loss of configurability.

My advice is to use ttk widgets if you want your GUI to look a little more modern, and the tkinter widgets if you need a bit more configurability. You can use them both in the same applications.

Answer from Bryan Oakley on Stack Overflow
Top answer
1 of 6
119

The widgets in tkinter are highly and easily configurable. You have almost complete control over how they look - border widths, fonts, images, colors, etc.

ttk widgets use styles to define how they look, so it takes a bit more work if you want a non-standard button. ttk widgets are also a little under-documented. Understanding the underlying theme and layout engines (layout within the widgets themselves, not pack, grid and place) is a challenge.

Generally speaking, the themed widgets will give you an application that looks more "native", but at the expense of a loss of configurability.

My advice is to use ttk widgets if you want your GUI to look a little more modern, and the tkinter widgets if you need a bit more configurability. You can use them both in the same applications.

2 of 6
11

My opinion for beginners who are starting to learn Tkinter, is to use Tkinter widgets, because they're really easy to learn. But on the other hand Tkinter.ttk is a module designed to make Tkinter widgets look really perfectly, but is really hard to learn and there are no easy options there. Like there are no -fg, -bg. Perhaps, there are no new styles available in Tkinter. Style are only designed for ttk, and can be found in ttk.

And Tkinter widgets really don't look like other native platform widgets.

But ttk is nicer and smoother looking, and look like other native platforms.

So if you are making apps for your own private use, then use Tkinter and also use some ttk if needed, because ttk supports much cooler widgets that can change the look of your app.

And if you are making apps for public use, then go for both because Tkinter is needed for creating the window and some more important stuff, and for widgets go for ttk.

But honestly, I say use both because there are no conflicts between the two; just use them both to your advantage.

Honestly using ttk is a challenge! Because it has no Grid,Pack, Place and many other options that are normally available in Tkinter widgets. But wait!! Tkinter has those options! So use both! Try to make a nice app!

That is the real difference between the two: Tkinter widgets are more configurable, and ttk is more modern and it is configurable with styles which are really handy shortcuts. And Tkinter is like the core of the window and ttk is styling. Think of it like this:

Tkinter --- HTML, ttk --- CSS, Python --- JavaScript.

🌐
GeeksforGeeks
geeksforgeeks.org › python › difference-between-the-widgets-of-tkinter-and-tkinter-ttk-in-python
Difference Between The Widgets Of Tkinter And Tkinter.Ttk In Python - GeeksforGeeks
July 23, 2025 - Let's dive into code examples to illustrate the difference between Tkinter and Tkinter.ttk widgets. Here is a simple example demonstrating basic Tkinter widgets. We will create a Tkinter window application and display a few widgets such as Buttons, Label, and Entry. ... import tkinter as tk # Create the main window root = tk.Tk() root.title("Tkinter Widgets Example") # Create a label widget label = tk.Label(root, text="This is a Tkinter Label") label.pack() # Create an entry widget entry = tk.Entry(root) entry.pack() # Create a button widget button = tk.Button(root, text="Click Me") button.pack() # Run the application root.mainloop()
Discussions

Difference between tk.Tk() and Tk()?
Both are referring to the same Tk class, however they differ in how Tkinter was imported: import tkinter as tk root = tk.Tk() # or from tkinter import * root = Tk() Note that the first style is preferred . More on reddit.com
🌐 r/Tkinter
3
4
February 28, 2021
CustomTkinter or ttkbootstrap? Which is better and why? Should I even use Tkinter?
Something that you may not have considered is licensing. When deciding which GUI framework to use the license is the first thing that I consider. Commercial licensing can create an overhead cost that can kill a startup app I don't personally use tkinter because there are more modern options. You might consider Flet with the understanding that it does not have mass adoption and while it feels lightweight it requires the installation of GIT, flutter, and MS Visual Studio with additional toolkits in order to package the app. Combined those require more than 10GB of hard drive space on your main drive. It also has a known flutter related bug that requires you to set GIT safe.directory to all which is a security concern. But it creates beautiful and modern single page apps through widgets and views. It supports animations and can be surprisingly powerful. I once built a legend of Zelda clone using only Flet More on reddit.com
🌐 r/learnpython
13
12
August 2, 2024
python - Difference between import tkinter as tk and from tkinter import - Stack Overflow
I am just starting to learn python, and I don't have good knowledge of python. What is the difference between from Tkinter import * and import Tkinter as tk Why can't I just write: import Tkinter More on stackoverflow.com
🌐 stackoverflow.com
Importing ttk from tkinter always results in an exception
Both from tkinter import ttk and import tkinter.ttk as ttk should work on any version of Python 3. Do you maybe have a file called "tkinter.py" in your project that is being imported instead of the standard library module? More on reddit.com
🌐 r/learnpython
16
4
November 3, 2022
🌐
Python
docs.python.org › 3 › library › tkinter.ttk.html
tkinter.ttk — Tk themed widgets
Ttk comes with 18 widgets, twelve of which already existed in tkinter: Button, Checkbutton, Entry, Frame, Label, LabelFrame, Menubutton, PanedWindow, Radiobutton, Scale, Scrollbar, and Spinbox. The other six are new: Combobox, Notebook, Progressbar, Separator, Sizegrip and Treeview.
🌐
Linux Mint Forums
forums.linuxmint.com › board index › interests › programming & development
Difference between tkinter tk and ttk in Python - Linux Mint Forums
September 4, 2025 - Hello, You should probably go with vanilla Tkinter. Ttk is like a more modern and clean widget toolkit for Tkinter, but many find it useless, and normal Tk has a lot more documentation and is easier to use and provides more options for a clean looking and simple gui.
🌐
Python Tutorial
pythontutorial.net › home › tkinter tutorial › ttk widgets
Tkinter ttk Themed Widgets - Python Tutorial
April 3, 2025 - Tkinter has both classic and themed widgets (ttk widget). The Tk themed widgets are also known as ttk widgets.
🌐
Python Programming
pythonprogramming.altervista.org › tkinter-vs-ttk-better-widgets
Tkinter vs TTK (better widgets) – python programming
In the next picture you can see some radiobuttons with tkinter and tkinter.ttk, to see the difference. # the code # for the original tkinter import tkinter as tk root = tk.Tk() vstring = tk.IntVar() text_value = [ ("option 1", "1"), ("option 2", "2"), ("option 3", "3"), ("option 4", "4") ] for t, v in text_value: r = tk.Radiobutton(root) r['text'] = t r['value'] = v r['variable'] = vstring r.pack(anchor=tk.W) root.
🌐
YouTube
youtube.com › watch
Python Basics Tutorial Difference Between tk and ttk from tkinter || Answering Viewers Comments - YouTube
Learn what the difference is between tk and ttk from tkinter for python programmingPatreon:https://www.patreon.com/Python_basicsGithub:https://github.com/Pyt...
Published   February 11, 2022
Find elsewhere
🌐
TutorialsPoint
tutorialspoint.com › what-is-the-difference-between-the-widgets-of-tkinter-and-tkinter-ttk-in-python
What is the difference between the widgets of tkinter and tkinter.ttk in Python?
March 26, 2021 - 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 *"
🌐
Finxter
blog.finxter.com › home › learn python blog › understanding the differences between tkinter and tkinter ttk widgets in python
Understanding the Differences Between Tkinter and Tkinter TTK Widgets in Python - Be on the Right Side of Change
March 7, 2024 - Standard Tkinter widgets offer ... In contrast, TTK widgets, being part of the themed Tk widgets extension, allow for modern and native styling across different operating systems using themes and styles....
🌐
PySimpleGUI
docs.pysimplegui.com › en › latest › documentation › module › ttk
TTK - PySimpleGUI Documentation
If there is both a TK and a TTK version of a Widget, usually it's the TK version that has been implemented. You will find a table in the Elements section that shows exactly which tkinter widget is used for each element.
🌐
Python documentation
docs.python.org › 3 › library › tkinter.html
tkinter — Python interface to Tcl/Tk
February 23, 2026 - Tk uses Tcl’s event queue to generate and process GUI events. ... Themed Tk (Ttk) is a newer family of Tk widgets that provide a much better appearance on different platforms than many of the classic Tk widgets.
🌐
Raspberry Pi Forums
forums.raspberrypi.com › board index › programming › python
Quesion about tkinter tk/ttk widgets and metrics - Raspberry Pi Forums
May 16, 2024 - I am writing a UI using tkinter and ttk widgets. Having struggled with pack() and "automatic" placing of widgets, and failed, I am trying a different tack, namely placing things where I think I want them to be. As an example, I create a Notebook, and add in Frame objects to give me a set of ...
🌐
CodersLegacy
coderslegacy.com › home › python › tkinter ttk widgets – python tutorial
Tkinter ttk widgets - Python Tutorial - CodersLegacy
January 24, 2022 - Secondly, the newer widgets introduced by ttk have slight syntax differences when it comes to certain menu options like bg and fg, which are normally present in tkinter. Instead of this, ttk introduces a Style class, which is used to apply customizations.
🌐
GeeksforGeeks
geeksforgeeks.org › python-tkinter-ttk-checkbutton-and-comparison-with-simple-checkbutton
Python | Tkinter ttk.Checkbutton and comparison with simple Checkbutton | GeeksforGeeks
January 19, 2023 - Python offers multiple options for developing GUI (Graphical User Interface). Out of all the GUI methods, Tkinter is the most commonly used method. It is a standard Python interface to the Tk ...
🌐
15. The Menu widget
anzeljg.github.io › rin2 › book2 › 2405 › docs › tkinter › ttk.html
28. ttk: Themed widgets - Tkinter
Starting with Tk 8.5, the ttk module became available. This module replaces much (but not all) of the original Tkinter machinery.
🌐
Reddit
reddit.com › r/learnpython › customtkinter or ttkbootstrap? which is better and why? should i even use tkinter?
r/learnpython on Reddit: CustomTkinter or ttkbootstrap? Which is better and why? Should I even use Tkinter?
August 2, 2024 -

I am quite new to GUIs in Python and Python in general, and I want to know which one of these packages is worth using for Tkinter or if I should be using Tkinter in the first place. The criteria I am going for are a modern look, ease of use, and an abundance of widgets and customization options.

🌐
Wikipedia
en.wikipedia.org › wiki › Tkinter
Tkinter - Wikipedia
1 week ago - This allows Tk widgets to be easily themed to look like the native desktop environment in which the application is running, thereby addressing a long-standing criticism of Tk (and hence of Tkinter). Some widgets are exclusive to ttk, such as the combobox, progressbar, treeview, notebook, separator and sizegrip.
🌐
Reddit
reddit.com › r/tkinter › difference between tk ttk tix bwidget
r/Tkinter on Reddit: Difference between tk ttk tix bwidget
December 7, 2020 - Members Online • · GrilledGuru · Can someone explain to me the difference between the following (I added between parenthesis what I think they are) tk (core widget library) ttk (the same widgets but themable) tix (a collection of additional ...
Top answer
1 of 4
33

from Tkinter import * imports every exposed object in Tkinter into your current namespace. import Tkinter imports the "namespace" Tkinter in your namespace and import Tkinter as tk does the same, but "renames" it locally to 'tk' to save you typing

let's say we have a module foo, containing the classes A, B, and C.

Then import foo gives you access to foo.A, foo.B, and foo.C.

When you do import foo as x you have access to those too, but under the names x.A, x.B, and x.C. from foo import * will import A, B, and C directly in your current namespace, so you can access them with A, B, and C.

There is also from foo import A, C wich will import A and C, but not B into your current namespace.

You can also do from foo import B as Bar, which will make B available under the name Bar (in your current namespace).

So generally: when you want only one object of a module, you do from module import object or from module import object as whatiwantittocall.

When you want some modules functionality, you do import module, or import module as shortname to save you typing.

from module import * is discouraged, as you may accidentally shadow ("override") names, and may lose track which objects belong to wich module.

2 of 4
4

You can certainly use

import Tkinter

However, if you do that, you'd have to prefix every single Tk class name you use with Tkinter..

This is rather inconvenient.

On the other hand, the following:

import Tkinter as tk

sidesteps the problem by only requiring you to type tk. instead of Tkinter..

As to:

from Tkinter import *

it is generally a bad idea, for reasons discussed in Should wildcard import be avoided?