Feb-13-2022, 12:24 AM
Here's an example class that uses trace_add:
from tkinter import * from tkinter import ttk class TryTraceBack: def __init__(self, parent): self.parent = parent self.parent.geometry("200x130") self.parent.grid_rowconfigure(0, weight=1) self.parent.grid_columnconfigure(0, weight=1) self.var = StringVar() def validate(self, var, index, mode): print(f"Traced variable {self.var.get()}") def CreateWidgets(self): # registering the observer self.var.trace_add('write', self.validate) frame = Frame(self.parent) frame.grid(row=0, column=0, sticky="NESW") frame.grid_rowconfigure(0, weight=1) frame.grid_columnconfigure(0, weight=1) label = Label(frame, textvariable = self.var).grid(row=0, column=0, sticky='EW') entry = Entry(frame, textvariable = self.var).grid(row=1, column=0, sticky='EW') def main(): root = Tk() ttb = TryTraceBack(root) ttb.CreateWidgets() root.mainloop() if __name__ == '__main__': main()