Я новичок в python и стремлюсь овладеть ОО в python. Здесь я стараюсь рисовать, как. Например, прямоугольник на холсте, помещенный во фрейм через кнопку из другого фрейма, который определен в том же классе. В более общем смысле: как объекты могут общаться друг с другом? Текущий код приводит к ошибке: AttributeError: «Windows» объект не имеет атрибута «canvas_1»
import tkinter as tk
class Windows():
def __init__(self, master, width, height, colour, row, column, cell_size):
self.frame_1 = tk.Frame(master, width=width+20, height=height+20, bg='white')
self.frame_1.grid(row=row, column=column)
self.width=width
self.height=height
self.row=row
self.column=column
self.colour=colour
def make_canvas(self):
self.canvas_1 = tk.Canvas(self.frame_1, width=self.width, height=self.height, bg=self.colour,
borderwidth = 0, highlightthickness=0)
self.canvas_1.place(x=10, y=10)
self.canvas_1.create_rectangle(0,0,self.width-1, self.height-1)
def draw_rectangle(self):
self.canvas_1.create_rectangle(50, 50, 100, 100)
def make_button(self, text, row, column):
self.button = tk.Button(self.frame_1, text=text,command=self.draw_rectangle)
self.button.grid(row=row, column=column)
master = tk.Tk()
window_1 = Windows(master, width=600, height=400, colour='yellow', row=1, column=0, cell_size=10 )
window_1.make_canvas()
window_2 = Windows(master, width=600, height=100, colour='white', row=3, column=0, cell_size=10)
window_2.make_button('button_1',0,0)
master.mainloop()