from Tkinter import * master = Tk() master.grid_rowconfigure(0, weight=1) master.grid_columnconfigure(0, weight=1) master.grid_columnconfigure(1, weight=1) class DebugScrollbar(Scrollbar): def set(self, *args): print("S SET", args, Text.yview(text)) Scrollbar.set(self, *args) class DebugText(Text): def yview(self, *args): print("YVIEW", args) Text.yview(self, *args) scrollbar = DebugScrollbar(master) scrollbar.grid(row=0, column=2, sticky=N+S) text = DebugText(master, yscrollcommand=scrollbar.set) for i in range(10, 100): text.insert(END, (str(i)*10+' ')* 3 + '\n') text.grid(row=0, columnspan=2, sticky=N+S+E+W) scrollbar['command'] = text.yview shrink = Button(master, text='8', command=lambda:text.config(font=['Lucida Console', 8, 'normal'])) expand = Button(master, text='20', command=lambda:text.config(font=['Lucida Console', 20, 'normal'])) shrink.grid(row=1, column=0) expand.grid(row=1, column=1) mainloop() x = input()