Tkinter는 대량의 데이터 항목을 목록 형태로 깔끔하게 표현해야 할 때 매우 유용한 Listbox(리스트박스) 위젯을 제공합니다. 리스트박스의 속성을 변경하려면 configure(*options) 메서드를 사용하면 되며, 이를 통해 배경색, 글자색, 폰트 등 다양한 스타일 요소를 자유롭게 설정할 수 있습니다.
width=0으로 내용 길이에 맞추는 원리
리스트박스의 너비는 width 속성으로 정의됩니다. 일반적으로 너비를 고정된 값으로 지정하지만, width=0으로 설정하면 리스트박스가 항목 내용의 길이에 맞춰 자동으로 조정됩니다. 덕분에 가장 긴 항목까지 잘리지 않고 모두 표시할 수 있어, 고정된 창 크기 안에서 공간을 효율적으로 활용할 수 있습니다.
예제 코드
아래 예제에서는 여러 프로그래밍 언어 이름을 항목으로 추가하고, configure() 메서드로 배경색과 글자색, 폰트를 지정한 뒤 width=0을 적용하여 리스트박스가 내용에 딱 맞게 표시되도록 구성했습니다.
# 필요한 라이브러리 임포트
from tkinter import *
# tkinter 프레임 또는 윈도우 인스턴스 생성
win = Tk()
# 윈도우 크기 설정
win.geometry("700x350")
# 프로그래밍 언어 이름을 항목으로 하는 Listbox 위젯 추가
listbox = Listbox(win)
listbox.insert(END, "C++", "Java", "Python", "Rust", "GoLang", "Ruby", "JavaScript", "C#", "SQL", "Dart")
listbox.pack(side=LEFT, fill=BOTH)
# configure()로 스타일을 지정하고 width=0으로 내용 길이에 맞게 조정
listbox.configure(background="skyblue4", foreground="white", font=('Aerial 13'), width=0)
win.mainloop()실행 결과
위 코드를 실행하면 하늘색 배경에 흰색 글씨로 된 리스트박스가 나타나며, 각 항목의 길이에 맞춰 너비가 자동으로 조정된 것을 확인할 수 있습니다.
