Validating user input
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 our widgets to our needs, but before we learn how to control this behavior, let's think about what we want to do.