I want to update the image stored in the red_smiley_1 label. I want to define my method 'change_row_one' so that I can use the Label.configure() method to update the image stored in this the Label widget. How should i define my method? I've included my current method which is giving me issues. Thank you.
class Cube(tk.Tk):
def __init__(self):
super().__init__()
self.title("John's GUI Cube Application")
self.geometry("300x180")
self.resizable(True,True)
container = ttk.Frame(self)
container.grid(padx=10,pady=10,sticky='EW')
cube_frame = CubeFrame(container).grid(row=0,column=0,sticky='NSEW')
class CubeFrame(ttk.Frame):
def __init__(self,container):
super().__init__(container)
self.red_smiley = ImageTk.PhotoImage(Image.open('./images/red_smile.png'))
self.white_smiley = ImageTk.PhotoImage(Image.open('./images/white_smile.png'))
self.yellow_smiley = ImageTk.PhotoImage(Image.open('./images/yellow_smile.png'))
# Red Smiley Image Labels
self.red_smiley_1 = ttk.Label(self,image=self.red_smiley).grid(row=0,column=0)
self.red_smiley_2 = ttk.Label(self,image=self.red_smiley).grid(row=0,column=1)
self.red_smiley_3 = ttk.Label(self,image=self.red_smiley).grid(row=0,column=2)
# Image Label Buttons
self.row_one_button = ttk.Button(self,text='Change Row 1',command=self.change_row_one).grid(row=0,column=3,sticky='WE')
self.row_two_button = ttk.Button(self,text='Change Row 2',command=self.change_row_two).grid(row=1,column=3,sticky='WE')
self.row_three_button = ttk.Button(self,text='Change Row 3',command=self.change_row_three).grid(row=2,column=3,sticky='WE')
# Change Row One Image Labels
def change_row_one(self):
new_image = ImageTk.PhotoImage(Image.open('./images/white_smile.png'))
self.red_smile_1.configure(image=new_image)
self.red_smile_1.image = new_image