Thank you for reading this. How do I reference the_canvas from my solve() method? Despite hours of searching I haven't been able to solve this or find a similar example. All that I've gained is a headache.
Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python3.4/tkinter/__init__.py", line 1536, in __call__ return self.func(*args) File "/home/pi/sudoku.py", line 64, in solve self.the_canvas.create_text(20,20,text="5") AttributeError: 'Sudoku' object has no attribute 'the_canvas' from tkinter import * class Sudoku(Frame): def __init__(self, parent): Frame.__init__(self, parent) self.parent = parent parent.title("Sudoku solver") #create canvas the_canvas = Canvas(width = 300, height = 300) the_canvas.pack(side = TOP, anchor = NW, padx = 10, pady = 10) #create grid #create solve button solve_button = Button(the_canvas, text = "Solve", command = self.solve, anchor = W) solve_button.configure(width = 5, activebackground = "#33B5E5", relief = FLAT) solve_button.pack(side = TOP) solve_button_window = the_canvas.create_window(250, 250, anchor=NW, window=solve_button) def solve(self): print("solve called") self.the_canvas.create_text(20,20,text="5") def main(): root = Tk() app = Sudoku(root) app.mainloop() if __name__ == '__main__': main() -- Regards, Phil _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor