Этот код изменяет изображение, когда вы нажимаете холст (не только изображение).
Я добавил только self.bind('<Button-1>', self.update)
и event
в def update()
Я использую переменные IMG1
, IMG2
только для того, чтобы легко заменить ваши файлы на мои.
import tkinter as tk
from PIL import Image, ImageTk
IMG1 = "C:\\Users\\Laptop\\Desktop\\test2.jpg"
IMG2 = "C:\\Users\\Laptop\\Desktop\\test2.jpg"
class ExampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.x = self.y = 0
self.canvas = tk.Canvas(self, width=700, height=700, cursor="cross")
self.canvas.pack(side="top", fill="both", expand=True)
self.image = Image.open(IMG1).resize((400,400))
self.photo = ImageTk.PhotoImage(self.image)
self.canvas.create_image((0, 0), anchor="nw", image=self.photo)
self.bind('<Button-1>', self.update)
def update(self, event):
self.image = Image.open(IMG2).resize((400,400))
self.photo = ImageTk.PhotoImage(self.image)
self.canvas.create_image((0, 0), anchor="nw", image=self.photo)
if __name__ == "__main__":
app = ExampleApp()
app.mainloop()
Но этот код изменяет только первое изображение на второе. Оно меняется не вторым, а первым.