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

Tkinter에서 위젯을 표시하고 숨기는 방법

Tkinter로 애플리케이션을 개발하다 보면 필요할 때 위젯을 화면에 표시하거나 숨겨야 하는 경우가 자주 발생합니다. 예를 들어 사용자의 선택에 따라 특정 정보를 보여주거나 감추는 동적인 UI를 만들 때 유용합니다.

핵심 메서드

  • pack_forget() 메서드: 화면에 배치된 위젯을 숨길 수 있습니다. 위젯이 삭제되는 것은 아니며, 단지 레이아웃 관리자에서 제거될 뿐입니다.
  • pack() 메서드: 숨겨진 위젯을 다시 화면에 표시할 수 있습니다.

두 메서드 모두 버튼의 command 옵션과 함께 lambda(익명 함수)를 사용하여 간편하게 호출할 수 있습니다.

예제 코드

#Import the required library
from tkinter import *

#Create an instance of tkinter frame
win= Tk()

#Define the geometry of the window
win.geometry("650x450")

#Define function to hide the widget
def hide_widget(widget):
    widget.pack_forget()

#Define a function to show the widget
def show_widget(widget):
    widget.pack()

#Create an Label Widget
label= Label(win, text= "Showing the Message", font= ('Helvetica bold', 14))
label.pack(pady=20)

#Create a button Widget
button_hide= Button(win, text= "Hide", command= lambda:hide_widget(label))
button_hide.pack(pady=20)

button_show= Button(win, text= "Show", command= lambda:show_widget(label))
button_show.pack()

win.mainloop()

실행 결과

위 코드를 실행하면 ShowHide 두 개의 버튼이 있는 창이 나타납니다. 이 버튼들을 이용해 라벨 위젯을 자유롭게 표시하거나 숨길 수 있습니다.

Tkinter에서 위젯을 표시하고 숨기는 방법

이제 Hide 버튼을 클릭하면 라벨 텍스트가 화면에서 사라지고, Show 버튼을 클릭하면 다시 나타납니다.

Tkinter에서 위젯을 표시하고 숨기는 방법

추가 팁

grid 지오메트리 매니저를 사용하는 경우에는 pack_forget() 대신 grid_remove() 또는 grid_forget() 메서드를 사용해야 합니다. grid_remove()는 위젯의 그리드 옵션을 기억하기 때문에 grid()만으로 원래 위치에 복원할 수 있다는 장점이 있습니다.