Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Tkinter에서 루트 창을 숨기거나 제거하는 방법

Tkinter 애플리케이션을 개발하거나 테스트하다 보면 기본 루트 창이나 프레임을 화면에 표시하지 않고 숨겨야 하는 경우가 있습니다. Tkinter 창을 다루는 방법은 크게 두 가지가 있는데, 하나는 창을 숨기는(withdraw) 것이고, 다른 하나는 창을 완전히 제거하는(destroy) 것입니다.

mainloop() 메서드는 외부 이벤트에 의해 창이 닫히기 전까지 Tkinter 윈도우를 계속 실행 상태로 유지합니다. 따라서 창을 완전히 종료하고 싶다면 destroy() 메서드를 호출하면 됩니다. destroy()가 실행되면 창과 관련된 모든 리소스가 해제되며 프로그램도 종료됩니다.

반면, 창을 완전히 닫지 않고 단순히 화면에서만 감추고 싶다면 루트 창 또는 메인 창에서 호출할 수 있는 withdraw() 메서드를 사용하는 것이 일반적입니다. withdraw()를 사용하면 창은 메모리에 그대로 유지되지만 화면에는 나타나지 않으므로, 나중에 필요할 때 다시 표시(deiconify)할 수 있다는 장점이 있습니다.

아래 예제에서는 텍스트 위젯과 "Quit" 버튼을 만들어, 버튼을 클릭하면 루트 창이 즉시 닫히도록 구성했습니다. 또한 주석 처리된 withdraw() 코드의 주석을 해제하면 프로그램 실행 시 루트 창이 화면에 표시되지 않도록 설정할 수도 있습니다.

예제 코드

#Import the library
from tkinter import *

#Create an instance of window
win= Tk()

#Set the geometry of the window
win.geometry("700x400")

def disable_button():
    win.destroy()
#Create a Label
Label(win,text="Type Something",font=('Helvetica bold', 25),
fg="green").pack(pady=20)

#Create a Text widget
text= Text(win, height= 10,width= 40)
text.pack()

#Create a Disable Button
Button(win, text= "Quit", command= disable_button,fg= "white",
bg="black", width= 20).pack(pady=20)

#win.withdraw()
win.mainloop()

위 파이썬 코드는 withdraw 메서드를 사용하여 루트 창을 숨기는 방식입니다. 주석 처리된 부분을 활용하면 프로그램 시작 직후 창을 감출 수 있고, 창을 완전히 종료하고 싶다면 destroy 메서드를 사용하면 됩니다.

실행 결과

Python Tkinter에서 루트 창을 숨기거나 제거하는 방법

Quit 버튼을 클릭하면 루트 창이 즉시 화면에서 사라지는 것을 확인할 수 있습니다.