Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter 텍스트 위젯에 세로 스크롤바 연결하는 방법

Tkinter의 Scrollbar(스크롤바) 위젯은 컨테이너 요소와 그 내용을 스크롤바와 함께 배치할 수 있게 해주는 매우 유용한 위젯입니다. 스크롤바를 활용하면 대량의 데이터를 효율적으로 탐색하고 확인할 수 있습니다.

세로 스크롤바 연결하기

Tkinter에서는 애플리케이션에 세로(vertical) 및 가로(horizontal) 스크롤바를 모두 추가할 수 있습니다. 기본적으로 세로 스크롤바는 생성자에서 지원되므로 별도로 방향(orientation)을 지정하지 않아도 됩니다.

텍스트 위젯(Text Widget)에 세로 스크롤바를 연결하려면 xscrollcommandyscrollcommand 옵션을 사용하여 가로 및 세로 스크롤바의 값을 설정하면 됩니다. 핵심은 두 가지 작업입니다.

  • 텍스트 위젯 생성 시 yscrollcommand=스크롤바.set으로 설정
  • 스크롤바에 command=텍스트위젯.yview를 설정하여 양방향 연동

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
from tkinter import messagebox

# tkinter 프레임 인스턴스 생성
win = Tk()

# 창 크기 설정
win.geometry("700x350")

# 세로 스크롤바 추가
v = Scrollbar(win, orient='vertical')
v.pack(side=RIGHT, fill='y')

# 텍스트 위젯 생성 (스크롤바와 yscrollcommand로 연결)
text = Text(win, font=("Georgia, 24"), yscrollcommand=v.set)

# 텍스트 위젯에 내용 삽입
for i in range(10):
    text.insert(END, "Welcome to Tutorialspoint...\n\n")

# 스크롤바를 텍스트 위젯과 연동
v.config(command=text.yview)
text.pack()

win.mainloop()

실행 결과

위 코드를 실행하면 텍스트가 담긴 텍스트 편집기 화면이 나타납니다. 텍스트 위젯 오른쪽에는 세로 스크롤바가 함께 배치되어 있으며, 텍스트 내용이 편집기 영역을 초과하여 넘칠 때마다 스크롤바가 자동으로 작동합니다.

Tkinter 텍스트 위젯에 세로 스크롤바 연결하는 방법

정리

Tkinter에서 텍스트 위젯과 스크롤바를 연결하는 핵심은 양방향 바인딩입니다. 텍스트 위젯의 yscrollcommand에 스크롤바의 set 메서드를 전달하고, 동시에 스크롤바의 command에 텍스트 위젯의 yview 메서드를 지정해야 사용자가 스크롤바를 조작하거나 텍스트를 입력할 때 두 요소가 서로 완벽하게 동기화됩니다.