200+ lines of code for one simple call is more than I want to go through, so this is a simple example of using trace to validate code/
try: import Tkinter as tk ## Python 2.x import ttk except ImportError: import tkinter as tk ## Python 3.x from tkinter import ttk class Converter: def __init__(self, top): self.vars = tk.StringVar() self.vars.trace('w', self.validate) self.Entry1 = tk.Entry(top, textvariable = self.vars, width=20).grid() def validate(self, *args): if not self.vars.get().isalpha(): corrected = ''.join(filter(str.isalpha, self.vars.get())) self.vars.set(corrected) root=tk.Tk() C=Converter(root) root.mainloop()