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

Python Tkinter Frame 클래스 활용법: 여러 위젯을 하나로 묶는 그룹화 기법

Tkinter Frame 위젯이란?

Tkinter의 Frame 위젯은 여러 개의 위젯을 하나의 프레임 안에 그룹화할 때 매우 유용하게 사용됩니다. Frame은 부모 창(윈도우)에 적용되는 모든 함수와 속성을 그대로 포함하기 때문에, 마치 독립적인 작은 창처럼 동작시킬 수 있습니다.

Frame 위젯을 생성하려면 Frame 클래스의 객체를 인스턴스화하면 됩니다. 창에 Frame 위젯을 한 번 정의해 두면, 이후에는 어떤 위젯이든 자유롭게 골라서 해당 프레임 안에 배치할 수 있습니다.

Frame 위젯의 주요 장점

  • 관련된 위젯들을 논리적으로 묶어 UI 구조를 깔끔하게 정리할 수 있습니다.
  • 프레임 단위로 배치 관리자(pack, grid 등)를 따로 적용할 수 있어 레이아웃 제어가 쉬워집니다.
  • 프레임마다 배경색, 테두리 등 스타일을 개별적으로 지정할 수 있습니다.

예제 코드

다음 예제에서는 Frame 위젯을 하나 만들고, 그 안에 라벨(Label), 입력창(Entry), 버튼(Button)을 배치해 보겠습니다.

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

# tkinter 프레임 또는 윈도우의 인스턴스를 생성합니다
win = Tk()

# 윈도우 크기를 설정합니다
win.geometry("700x250")

def on_click():
    label["text"] = "Hello " + str(entry.get())

# Frame 위젯을 생성합니다
frame = Frame(win, width=400, height=300)

# 프레임 위젯 안에 라벨을 추가합니다
label = Label(frame, text="Enter your name", font=('Calibri 13'))
label.pack(pady=10)

# Entry(입력창) 위젯을 추가합니다
entry = Entry(frame, width=25)
entry.pack()

# 버튼을 생성하고 클릭 이벤트를 연결합니다
ttk.Button(frame, text="Click Me", command=on_click).pack()
frame.pack()

win.mainloop()

실행 결과

위 코드를 실행하면 Entry 위젯, 라벨 위젯, 버튼이 하나의 프레임 안에 담긴 창이 화면에 나타납니다.

Python Tkinter Frame 클래스 활용법: 여러 위젯을 하나로 묶는 그룹화 기법

텍스트 필드에 이름을 입력한 뒤 버튼을 클릭하면, 입력한 이름과 함께 인사 메시지가 화면에 표시됩니다.

Python Tkinter Frame 클래스 활용법: 여러 위젯을 하나로 묶는 그룹화 기법

정리

이처럼 Tkinter의 Frame 위젯을 활용하면 여러 위젯을 하나의 그룹으로 묶어 관리할 수 있으며, 복잡한 GUI 애플리케이션에서도 레이아웃을 체계적으로 구성할 수 있습니다. 특히 위젯의 수가 많아질수록 Frame으로 영역을 나누는 방식이 코드 가독성과 유지보수성 면에서 큰 도움이 됩니다.