Tkinter로 GUI 기반 애플리케이션을 개발하다 보면 캔버스(Canvas) 위에 이미지나 텍스트를 배치해야 하는 경우가 자주 발생합니다. 이번 글에서는 anchor 매개변수를 활용해 캔버스 중앙에 요소를 배치하는 방법을 알아보겠습니다.
anchor 매개변수란?
기본적으로 Tkinter 캔버스는 자신의 너비와 높이에 맞춰 이미지를 로드합니다. 하지만 anchor 매개변수에 방향 값을 전달하면 요소의 위치를 원하는 대로 조정할 수 있습니다.
anchor는 이미지나 텍스트를 배치하는 함수와 함께 호출되는 옵션으로, 캔버스 안에서 해당 요소가 놓일 방향과 위치를 결정합니다. 사용 가능한 주요 방향 값은 다음과 같습니다.
- N (북/상단), S (남/하단), E (동/우측), W (서/좌측)
- NE, NW, SE, SW (각 모서리)
- CENTER (중앙)
이처럼 anchor 매개변수를 사용하면 텍스트와 이미지를 어떤 방향으로든 자유롭게 정렬할 수 있습니다. 이미지를 캔버스 한가운데에 놓으려면 anchor 값을 CENTER로 지정하면 됩니다.
예제 코드
먼저 Label 함수를 사용해 이미지 레이블을 생성하고, anchor 속성으로 위치를 조정해 보겠습니다.
# tkinter 라이브러리 임포트
from tkinter import *
# tkinter 캔버스 인스턴스 생성
win = Tk()
# 창 크기 지정
win.geometry("700x150")
# 속성을 설정한 레이블 정의 (anchor=CENTER로 중앙 정렬)
label_img = Label(win, text="Hello World", font="sans-serif",
relief="solid", width=20, height=8,
anchor=CENTER)
label_img.pack()
# 창을 닫지 않고 화면에 표시
win.mainloop()실행 결과
위 코드를 실행하면 다음과 같이 레이블이 창의 정중앙에 배치된 것을 확인할 수 있습니다.

마무리
anchor 매개변수는 별도의 복잡한 계산 없이도 위젯의 위치를 직관적으로 제어할 수 있게 해주는 강력한 도구입니다. 캔버스뿐 아니라 Label, Button 등 다양한 위젯의 pack(), place() 메서드에서도 동일하게 활용할 수 있으니, UI 레이아웃을 세밀하게 조정할 때 적극적으로 활용해 보시기 바랍니다.