BOX-IT/Python

[Python/Tkinter] 마우스로 화면 클릭했을 때, 다른 이미지 보이게 하기

Buang 2022. 11. 1. 18:16
반응형

실행하고자 하는 것

 

Tkinter를 사용해서

화면 아무 곳이나 마우스 클릭을 했을 때

다른 이미지로 바뀌는 걸 하고자 한다. (마우스 이벤트)

 

 

예를 들어서 맨 처음 프로그램을 실행시켰을 때

위의 화면이 뜬다고 해보자.

 

나는 이때 화면에 마우스를 대고 클릭하면

 

 

이렇게 다른 이미지로 바뀌는 걸 하고자 한다.


코드

 

import tkinter as tk
from PIL import ImageTk,Image


root = tk.Tk()
root.title("Phantom_Thief_JJ")
root.geometry('600x600+530+80')

#보여줄 이미지
Images = [ImageTk.PhotoImage(Image.open('./01.png')), 
ImageTk.PhotoImage(file="./02.png")]

# 첫 번째 이미지를 가장 먼저 보여줘라
label = tk.Label(root, image=Images[0])
label.pack()

# 마우스를 클릭하면 두 번째 이미지를 보여줘라
def showNextImage(event):
    img2 = ImageTk.PhotoImage(Image.open("./02.png"))
    label.configure(image= img2)
    label.image = img2

#<Button>은 마우스 클릭을 하면 특정 행동을 실행하라는 뜻
# 여기선 마우스 클릭하면 showNextImage 함수를 실행하라는 뜻이된다.
root.bind("<Button>", showNextImage)
root.mainloop()

 

코드 전문은 위와같다.

 

 

 

 

 

참고 사이트

 

https://stackoverflow.com/questions/3482081/how-to-update-the-image-of-a-tkinter-label-widget

 

How to update the image of a Tkinter Label widget?

I would like to be able to swap out an image on a Tkinter label, but I'm not sure how to do it, except for replacing the widget itself. Currently, I can display an image like so: import Tkinter a...

stackoverflow.com

 

 

반응형