At first glance, Tkinter's selection of the input widgets seems a little disappointing. It doesn't give us a true number entry that only allows digits, nor a true drop-down selector that only allows items from the drop-down list to be selected. We have no date inputs, email inputs, or other specially-formatted input widgets.
But these weaknesses can become strengths. Because these widgets assume nothing, we can make them behave in a way that's appropriate to our specific needs, rather than some generic way that may or may not work optimally. For example, letters may seem inappropriate in a number entry, but are they? In Python, strings such as NaN and Infinity are valid float values; having a box that could increment numerals but also handle those string values may be very useful in some applications.
We're going to learn how to shape...