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

파이썬 Tkinter에서 고정 크기 프레임 안의 레이블을 중앙에 배치하는 방법

Tkinter는 파이썬으로 데스크톱 기반 애플리케이션을 개발할 때 사용되는 대표적인 GUI 툴킷입니다. 다양한 위젯과 클래스 라이브러리를 제공하기 때문에 버튼, 레이블, 입력창 등 애플리케이션을 구성하는 여러 요소를 손쉽게 만들 수 있습니다.

프레임(Frame) 위젯이란?

그중 Frame(프레임) 위젯은 기본 윈도우와 비슷한 역할을 하는 컨테이너 위젯입니다. 프레임 안에는 원하는 만큼 위젯을 배치할 수 있으며, 크기 조절, 배경색 변경, 지오메트리 매니저를 활용한 레이아웃 구성 등 다양한 속성을 자유롭게 커스터마이징할 수 있습니다.

예제: 고정 크기 프레임 안에 레이블 중앙 배치하기

고정된 크기의 프레임 안에 레이블(Label) 위젯을 만들고, 이를 정확히 가운데에 배치해야 하는 경우가 종종 있습니다. 이럴 때는 place 지오메트리 매니저의 anchor=CENTER 옵션을 사용하면 간단하게 해결할 수 있습니다.

다음 예제 코드를 통해 실제 구현 방법을 살펴보겠습니다.

# 라이브러리 임포트
from tkinter import *
from tkinter import filedialog

# 윈도우 인스턴스 생성
win = Tk()

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

# 프레임 위젯 생성
frame = Frame(win, width=300, height=300)
frame.grid(row=0, column=0, sticky="NW")

# 레이블 위젯 생성
label = Label(win, text="I am inside a Frame", font='Arial 17 bold')
label.place(relx=0.5, rely=0.5, anchor=CENTER)

win.mainloop()

코드 설명

  • win.geometry("700x350"): 메인 윈도우의 크기를 가로 700픽셀, 세로 350픽셀로 고정합니다.
  • Frame(win, width=300, height=300): 300x300 크기의 프레임 위젯을 생성하고 grid()로 좌측 상단에 배치합니다.
  • label.place(relx=0.5, rely=0.5, anchor=CENTER): 부모 위젯 기준 상대 좌표(50%, 50%)에 레이블의 중심점(anchor=CENTER)을 맞춰 정중앙에 배치합니다.

실행 결과

위 코드를 실행하면 700x350 크기의 윈도우가 나타나며, 그 안에 중앙 정렬된 레이블 위젯이 표시됩니다.

파이썬 Tkinter에서 고정 크기 프레임 안의 레이블을 중앙에 배치하는 방법

참고: 위 예제에서 레이블은 메인 윈도우(win)를 기준으로 중앙에 배치됩니다. 만약 레이블을 프레임(frame) 내부의 정중앙에 배치하고 싶다면, 레이블 생성 시 첫 번째 인자로 부모 위젯을 frame으로 지정한 후 동일하게 place(relx=0.5, rely=0.5, anchor=CENTER)를 적용하면 됩니다.