Tkinter의 Scrollbar(스크롤바) 위젯은 컨테이너 요소와 그 내용에 스크롤 기능을 연결해 주는 매우 유용한 위젯입니다. 스크롤바를 활용하면 화면에 다 담지 못하는 대량의 데이터도 효율적으로 탐색할 수 있습니다.
일반적으로 Tkinter에서는 세로(vertical) 스크롤바와 가로(horizontal) 스크롤바를 모두 지원합니다. 애플리케이션에 수평 스크롤바를 추가하려면 Scrollbar 생성자에서 방향(orient) 옵션을 'horizontal'로 지정하면 됩니다.
예제 코드
이번 예제에서는 수평 스크롤바가 포함된 간단한 텍스트 편집기를 만들어 보겠습니다.
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
# tkinter 프레임 인스턴스 생성
win = Tk()
# 창 크기 설정
win.geometry("700x350")
# 수평 스크롤바 추가
h = Scrollbar(win, orient='horizontal')
h.pack(side=BOTTOM, fill='x')
# 텍스트 위젯 추가
text = Text(win, font=("Calibri, 16"), wrap=NONE, xscrollcommand=h.set)
text.pack()
# 텍스트 위젯에 내용 삽입
for i in range(5):
text.insert(END, "Welcome to Tutorialspoint...")
# 스크롤바를 텍스트 위젯과 연결
h.config(command=text.xview)
win.mainloop()코드 핵심 포인트
- orient='horizontal': 스크롤바의 방향을 수평으로 설정합니다. 기본값은 세로(vertical)입니다.
- side=BOTTOM, fill='x': 스크롤바를 창 하단에 배치하고 가로 방향으로 꽉 차게 확장합니다.
- xscrollcommand=h.set: 텍스트 위젯의 가로 스크롤 상태를 스크롤바와 동기화합니다.
- wrap=NONE: 텍스트 자동 줄바꿈을 비활성화하여 긴 텍스트가 한 줄로 이어지게 합니다. 이렇게 해야 수평 스크롤이 의미 있게 동작합니다.
- h.config(command=text.xview): 사용자가 스크롤바를 조작할 때 텍스트 위젯이 함께 움직이도록 양방향으로 연결합니다.
실행 결과
위 코드를 실행하면 텍스트가 입력된 텍스트 편집기가 화면에 나타납니다. 텍스트 위젯에는 수평 스크롤바가 함께 배치되어 있으며, 텍스트가 화면 너비를 초과할 때마다 스크롤바를 통해 좌우로 내용을 탐색할 수 있습니다.

마무리
이처럼 Tkinter에서 수평 스크롤바를 추가하는 과정은 ① 스크롤바 생성 → ② 위젯과 명령(command) 연결 → ③ 레이아웃 배치(pack) 세 단계로 정리할 수 있습니다. 같은 원리를 Listbox, Canvas, Entry 등 다른 위젯에도 적용할 수 있으니, 실제 프로젝트에서 대용량 데이터를 다룰 때 적극 활용해 보시기 바랍니다.