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

Tkinter에서 위젯을 표시하고 숨기는 방법 완벽 가이드

Tkinter는 Python으로 GUI 기반 애플리케이션을 만들고 개발할 때 사용되는 대표적인 표준 라이브러리입니다. 실제로 애플리케이션을 개발하다 보면 사용자의 동작에 따라 특정 위젯을 화면에 나타내거나 숨겨야 하는 경우가 자주 발생합니다.

  • 위젯을 표시(Show)하려면 pack() 지오메트리 관리자를 사용합니다.
  • 위젯을 숨기기(Hide) 위해서는 pack_forget() 메서드를 사용합니다.

예제 코드

다음 예제를 통해 위젯을 표시하고 숨기는 방법을 직접 확인해 보겠습니다.

# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk

# tkinter 프레임 인스턴스 생성
win = Tk()

# tkinter 윈도우 크기 설정
win.geometry("700x350")

# 콤보박스 위젯의 스타일 정의
style = ttk.Style()
style.theme_use('xpnative')

# 위젯을 표시/숨기는 함수 정의
def show_widget():
    label.pack()
def hide_widget():
    label.pack_forget()
    b1.configure(text="Show", command=show_widget)

# 레이블(Label) 위젯 추가
label = ttk.Label(win, text="Eat, Sleep, Code and Repeat", font=('Aerial 11'))
label.pack(pady=30)

# 버튼(Button) 위젯 추가
b1 = ttk.Button(win, text="Hide", command=hide_widget)
b1.pack(pady=20)

win.mainloop()

코드 설명

hide_widget() 함수가 호출되면 pack_forget() 메서드가 실행되어 레이블이 화면에서 사라지고, 동시에 버튼의 텍스트가 "Show"로 변경됩니다. 이후 버튼을 다시 누르면 show_widget() 함수가 호출되어 pack() 메서드를 통해 레이블이 원래 위치에 다시 나타납니다.

실행 결과

위 코드를 실행하면 위젯을 표시하거나 숨길 수 있는 버튼이 포함된 창이 열립니다.

Tkinter에서 위젯을 표시하고 숨기는 방법 완벽 가이드

이제 버튼을 클릭하면 창에서 레이블 텍스트를 숨기거나 다시 표시할 수 있습니다.

Tkinter에서 위젯을 표시하고 숨기는 방법 완벽 가이드

참고: 다른 지오메트리 관리자를 사용하는 경우

위젯 배치에 grid()place()를 사용한 경우에는 각각 grid_forget(), place_forget() 메서드를 사용하여 위젯을 숨길 수 있습니다. 단, forget 계열 메서드는 위젯을 삭제하는 것이 아니라 화면에서 일시적으로 감추는 역할만 하므로, 언제든지 다시 표시할 수 있다는 점을 기억하세요.