I'm designing a "settings" frame for a Python/Tkinter app that lets the user specify an IP address, port number, and a couple other configurable options.  I want to validate the user entries before letting the user close the frame to apply them.
Based on what I've read up on (and tried) so far with the Entry widget's validate and validatecommand options, the only choices they offer are "heavy-handed" validations.  The kind where the user is blocked from leaving the Entry widget (or even typing any more keystrokes) until the entry is valid.  This is exactly the behavior I avoid when designing a GUI because it's annoying as all get-out for the user.
I'm planning on switching over to using .trace methods to keep watch on the values, and just disabling the "OK/Apply" button until all of the entries in the frame are valid.  Before I do that though, I wanted to know whether I'm missing anything with regards to the built-in validation options.  Is there an option I missed that's less heavy-handed?
You can use the validation feature without the "heavy-handedness". Have your validation always return True after setting the state of the ok/apply button.
Does Tkinter validation have to be heavy-handed?