Making our Spinbox a Ttk widget

If you're using Python 3.6 or earlier, the Spinbox widget is only available in tkinter, and not ttk.  We'll need to fix this so that our error-styling can be consistent.

At the time of writing this book, the author has submitted a patch to Python 3.7 to include the Ttk Spinbox. If you're using Python 3.7 or later, you can just use ttk::spinbox and skip this section.

Since Spinbox is already in the Tcl/Tk Ttk library, creating a Python class for it is surprisingly easy.

Add this code near the top of widgets.py:

class TtkSpinbox(ttk.Entry):

    def __init__(self, parent=None, **kwargs):
        super().__init__(parent, 'ttk::spinbox', **kwargs)

This is all that's needed to create a Ttk Spinbox for this application. We're ...

Get Python GUI Programming with Tkinter now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.