스크롤바(Scrollbar)는 프레임이나 창 안에서 많은 양의 텍스트나 문자를 표시할 때 사용되는 필수 요소입니다. 사용자가 원하는 만큼의 문자를 담을 수 있는 텍스트 위젯(Text Widget)과 함께 활용됩니다.
스크롤바는 크게 두 가지 유형으로 나뉩니다.
- 가로 스크롤바(Horizontal Scrollbar)
- 세로 스크롤바(Vertical Scrollbar)
스크롤바의 길이는 텍스트 위젯에 입력된 문자 수가 늘어날 때마다 자동으로 조절됩니다. ttk.Scrollbar를 사용하면 스크롤바의 스타일을 자유롭게 구성할 수 있으며, ttk는 이를 위해 다양한 내장 기능과 속성을 제공합니다.
예제
이 예제에서는 텍스트 위젯에 세로 스크롤바를 추가하고, ttk 스타일 테마를 사용해 스크롤바의 외관을 커스터마이징해 보겠습니다. 여기서는 'classic' 테마를 적용했으며, 전체 ttk 테마 목록은 공식 문서를 참고하시면 됩니다.
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# Tkinter 프레임 인스턴스 생성
win = Tk()
# 프레임 크기 설정
win.geometry("700x250")
style = ttk.Style()
style.theme_use('classic')
style.configure("Vertical.TScrollbar", background="green", bordercolor="red", arrowcolor="white")
# 세로 스크롤바 생성
scrollbar = ttk.Scrollbar(win, orient='vertical')
scrollbar.pack(side=RIGHT, fill=BOTH)
# 텍스트 위젯 추가
text = Text(win, width=15, height=15, wrap=CHAR,
yscrollcommand=scrollbar.set)
for i in range(1000):
text.insert(END, i)
text.pack(side=TOP, fill=X)
# 스크롤바와 텍스트 위젯 연결
scrollbar.config(command=text.yview)
win.mainloop()
주요 포인트
style.theme_use('classic'): 적용할 ttk 테마를 지정합니다.background: 스크롤바 본체의 배경색을 설정합니다.bordercolor: 스크롤바 테두리 색상을 지정합니다.arrowcolor: 상하 화살표 버튼의 색상을 변경합니다.
실행 결과
위 코드를 실행하면 텍스트 위젯과 함께 초록색 배경, 빨간색 테두리, 흰색 화살표가 적용된 커스터마이징된 세로 스크롤바가 표시된 창이 나타납니다.
