💥 TRENDING: ./library/tkinter.ttk.html - Collection
25.2. tkinter.ttk — Tk themed widgets¶
Source code: Lib/tkinter/ttk.py
The tkinter.ttk module provides access to the Tk themed widget set,
introduced in Tk 8.5. If Python has not been compiled against Tk 8.5, this
module can still be accessed if Tile has been installed. The former
method using Tk 8.5 provides additional benefits including anti-aliased font
rendering under X11 and window transparency (requiring a composition
window manager on X11).
The basic idea for tkinter.ttk is to separate, to the extent possible,
the code implementing a widget’s behavior from the code implementing its
appearance.
See also
- Tk Widget Styling Support
A document introducing theming support for Tk
25.2.1. Using Ttk¶
To start using Ttk, import its module:
from tkinter import ttk
To override the basic Tk widgets, the import should follow the Tk import:
from tkinter import *
from tkinter.ttk import *
That code causes several tkinter.ttk widgets (Button,
Checkbutton, Entry, Frame, Label,
LabelFrame, Menubutton, PanedWindow,
Radiobutton, Scale and Scrollbar) to
automatically replace the Tk widgets.
This has the direct benefit of using the new widgets which gives a better
look and feel across platforms; however, the replacement widgets are not
completely compatible. The main difference is that widget options such as
“fg”, “bg” and others related to widget styling are no
longer present in Ttk widgets. Instead, use the ttk.Style class
for improved styling effects.
See also
- Converting existing applications to use Tile widgets
A monograph (using Tcl terminology) about differences typically encountered when moving applications to use the new widgets.
25.2.2. Ttk Widgets¶
Ttk comes with 17 widgets, eleven of which already existed in tkinter:
Button, Checkbutton, Entry, Frame,
Label, LabelFrame, Menubutton, PanedWindow,
Radiobutton, Scale and Scrollbar. The other six are
new: Combobox, Notebook, Progressbar,
Separator, Sizegrip and Treeview. And all them are
subclasses of Widget.
Using the Ttk widgets gives the application an improved look and feel. As discussed above, there are differences in how the styling is coded.
Tk code:
l1 = tkinter.Label(text="Test", fg="black", bg="white")
l2 = tkinter.Label(text="Test", fg="black", bg="white")
Ttk code:
style = ttk.Style()
style.configure