Saul Spatz wrote: > That doesn't work, I'm being stupid, The user might type anywhere in the > string, not just at the end. I need > > return all([c in '1234567890abcdefABCDEF ' for c in after])
Ah, you found out already. Here's what I've come up with in the meantime. I also changed the command to a tuple as in the example pointed out by Wolfgang. import tkinter as tk def is_valid_fromhex(s): for pad in "", "0": try: bytes.fromhex(s + pad) except ValueError: pass else: return True return False def validate(before, after): print(before, "-->", after) return is_valid_fromhex(after) if __name__ == "__main__": root = tk.Tk() cmd = (root.register(validate), "%s", "%P") entry = tk.Entry(root, validate="all", validatecommand=cmd) entry.pack() entry.focus_set() root.mainloop() -- http://mail.python.org/mailman/listinfo/python-list