# File: differences.py # It's a Babbage all over again! from Tkinter import * master = Tk() rows = 5 cols = 12 # For the big screen # bigfont = "Helvetica 32" bigfont = "Helvetica 24" engine = [[0 for j in range(cols)] for i in range(rows)] outputlab = [[-1 for j in range(cols)] for i in range(rows)] inputbox = [0 for i in range(rows)] # run the engine def runEngine(event): for i in range(rows): if inputbox[i].get() == "": engine[i][0] = 0 else: engine[i][0] = int(inputbox[i].get()) for j in range(1,cols): for i in range(rows): if (i == rows-1): engine[i][j] = engine[i][j-1] else: engine[i][j] = engine[i][j-1] + engine[i+1][j-1] outputlab[i][j].configure(text=engine[i][j]) # Start widgets for i in range(rows): inputbox[i] = Entry(master, width=4, font=bigfont) inputbox[i].grid(row=i,column=0) inputbox[i].bind('',runEngine) for j in range(1,cols): outputlab[i][j] = Label(master, width=5, font=bigfont) outputlab[i][j].grid(row=i,column=j) # Mark the first row. inputbox[0].configure(bg="red") for j in range(1,cols): outputlab[0][j].configure(bg="red") for i in range(1,rows): inputbox[i].configure(bg="green") # engine[0][0] = 1 # engine[1][0] = 2 # runengine() master.mainloop()