BOX-IT/Python

[Python/Tkinter] 버튼 클릭했을 때 버튼 사라지게 하는 방법

Buang 2022. 11. 18. 23:18
반응형

 

Tkinter에서 버튼을 클릭했을 때 버튼을 사라지게 하는 방법이 있다.

 

 

위와같은 버튼이 있다고 했을 때

버튼을 클릭하면

 

 

위의 사진처럼 버튼이 아예 사라지는 걸 만들고자 한다.

즉 버튼을 클릭했을 때 버튼이 사라지는 걸 하기 위해선

destory() 함수를 사용하면 된다.

 

from tkinter import *

win = Tk()
win.geometry('600x600+530+80') # 창 크기 설정


# 버튼을 사라지게 하는 함수
def disappearbutton_1(widget):
    button_1.destroy() # 버튼을 완전히 사라지게 하는 destory 함수

# button_1이란 이름의 버튼 생성
button_1 = Button (win, width=10, height=10, bg='red', command = disappearbutton_1, text='버튼')

# button_1 위치 지정
button_1.place(x=100, y=100)

win.mainloop()

 

버튼을 클릭했을 때 사라지게 하는 코드 전문은 위와 같다.

가장 중요한 부분 2개만 살펴보고자 한다.

 

button_1 = Button (win, width=10, height=10, bg='red', command = disappearbutton_1, text='버튼')

 

위의 코드를 보면 button_1이란 이름의 버튼을 생성한 걸 알 수 있다.

width, height로 버튼의 크기를 지정하고 bg의 경우 배경색을 지정하는 건데

bg='red'를 통해 버튼 색을 빨강색으로 했다.

 

command는 특정 이벤트가 발생하면 어떠한 함수를 호출하는 아이다.

이벤트를 직역하자면 어떤 사건을 뜻한다.

여기서 이벤트, 즉 사건은 버튼이 클릭됐을 때 일 것이다.

나는 버튼이 클릭됐을 때 버튼이 사라지는 이벤트를 원해서

버튼이 사라지도록 하는 함수인 disapperbutton_1이란 함수를 만들었다.

 

내가 버튼을 클릭하면 command라는 아이가

disapperbutton_1이란 함수를 호출한다.

 

"어이! disapperbutton_1!

너 이제 일 할 시간이야! 얼른 일어나!"

 

 갑자기 command란 아이한테 호출당한 disapperbutton_1은 헐레벌떡 일어나서

일을 하러 나간다. disapperbutton_1은 무슨 일을 하는 아이일까?

 

# 버튼을 사라지게 하는 함수
def disappearbutton_1(widget):
    button_1.destroy() # 버튼을 완전히 사라지게 하는 destory 함수

위의 코드를 봐보니 disapperbutton_1는 button_1이란 버튼을

사라지게 하는 일을 하는 함수였다.

 

버튼이 사라지게 하기 위해선 destrory 함수를 사용한다.

destroy 함수 앞에는 버튼의 변수명(버튼의 이름)을 작성해 줘야 한다.

나는 버튼의 이름을 위해서 button_1로 지정해줬기에

button_1.destroy() 라고 작성하면

 

button_1이란 이름을 가진 버튼을 사라지게 해줘!가 된다.

 

반응형