Tkinter의 Listbox(리스트박스) 위젯은 숫자 목록, 항목 목록, 회사 직원 명단 등 다양한 아이템 목록을 화면에 표시할 때 사용됩니다. 그런데 목록이 길어지면 창 안에서 모든 항목을 한 번에 확인하기 어렵습니다. 이럴 때 Scrollbar(스크롤바)를 리스트박스에 연결하면 문제를 손쉽게 해결할 수 있습니다. Scrollbar() 객체를 생성한 뒤 리스트박스와 서로 연동하도록 설정하면, 리스트박스는 스크롤 가능한 형태로 동작하게 됩니다.
예제 코드
다음 예제에서는 1부터 100까지의 숫자가 담긴 리스트박스를 생성하고, 여기에 세로 방향(vertical) 스크롤바를 연결합니다.
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# Tkinter 프레임 인스턴스 생성
win = Tk()
# Tkinter 프레임 크기 설정
win.geometry("700x350")
# Scrollbar 위젯 객체 생성
s = Scrollbar()
# 세로 방향 스크롤바 생성
scrollbar = ttk.Scrollbar(win, orient='vertical')
scrollbar.pack(side=RIGHT, fill=BOTH)
# Listbox 위젯 추가
listbox = Listbox(win, width=350, font=('Helvetica 15 bold'))
listbox.pack(side=LEFT, fill=BOTH)
# Listbox에 값 추가
for values in range(1, 101):
listbox.insert(END, values)
listbox.config(yscrollcommand=scrollbar.set)
# 스크롤바 설정
scrollbar.config(command=listbox.yview)
win.mainloop()
코드 설명
ttk.Scrollbar(win, orient='vertical'): 창(win)에 세로 방향으로 움직이는 스크롤바 객체를 생성하고 오른쪽에 배치합니다.Listbox(win, width=350, font=('Helvetica 15 bold')): 지정된 너비와 굵은 글꼴로 리스트박스를 생성하고 왼쪽에 배치합니다.listbox.insert(END, values): 반복문을 통해 1부터 100까지의 값을 리스트박스 끝에 차례대로 추가합니다.listbox.config(yscrollcommand=scrollbar.set): 리스트박스가 스크롤될 때 스크롤바의 위치가 자동으로 갱신되도록 연결합니다.scrollbar.config(command=listbox.yview): 스크롤바를 조작할 때 리스트박스의 보이는 영역이 함께 움직이도록 설정합니다.
실행 결과
위 코드를 실행하면 스크롤 가능한 리스트박스가 포함된 창이 나타납니다. 오른쪽 스크롤바를 드래그하거나 마우스 휠을 사용하면 1부터 100까지의 전체 목록을 자유롭게 위아래로 탐색할 수 있습니다.
