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

파이썬 Tkinter로 창 너비에 맞춰 자동 줄바꿈되는 텍스트 위젯 만드는 방법

Tkinter는 텍스트 입력 필드에 데이터를 입력할 수 있도록 Text 위젯을 제공합니다. 이 위젯은 여러 줄에 걸친 사용자 입력도 문제없이 받아들일 수 있습니다.

또한 Tkinter에는 텍스트의 외관과 가독성을 높일 수 있는 다양한 내장 속성과 기능이 포함되어 있습니다. 그중 wrap 속성을 사용하면 Text 위젯 안에 작성된 텍스트가 창 너비에 맞춰 자동으로 줄바꿈됩니다.

wrap 속성은 세 가지 값을 가질 수 있습니다.

  • "word": 단어 단위로 줄바꿈합니다. 단어가 중간에 잘리지 않아 가장 일반적으로 사용됩니다.
  • "char": 문자 단위로 줄바꿈합니다. 화면 너비를 초과하는 지점에서 글자 하나하나 잘립니다.
  • NONE: 줄바꿈을 적용하지 않습니다. 텍스트가 한 줄로 계속 이어집니다.

wrap 속성을 활용하면 텍스트 편집기 내부의 들여쓰기와 정렬이 자동으로 정리되어, 사용자가 별도의 처리 없이도 깔끔한 텍스트 레이아웃을 유지할 수 있습니다.

예제 코드

다음 예제에서는 wrap 속성을 "word"로 설정하여 단어 단위로 줄바꿈되는 텍스트 위젯을 만들어 보겠습니다. 각 단어가 한 줄의 끝에 도달하면 자동으로 다음 줄로 넘어갑니다.

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

# tkinter 프레임 인스턴스 생성
win = Tk()
win.geometry("700x350")

# 텍스트 위젯을 추가하고 로렘 입숨 생성기로 채우기
size = 5
text = Text(win, wrap="word")
text.insert(END, lorem.paragraphs(size))
text.pack()

win.mainloop()

실행 결과

위 코드를 실행하면 텍스트 위젯이 포함된 창이 나타나며, 위젯 안에 여러 문단의 텍스트가 채워져 있는 것을 확인할 수 있습니다. 이때 텍스트는 단어 단위로 줄바꿈되어 창 너비를 벗어나지 않고 깔끔하게 표시됩니다.

파이썬 Tkinter로 창 너비에 맞춰 자동 줄바꿈되는 텍스트 위젯 만드는 방법

만약 줄바꿈 방식을 변경하고 싶다면 wrap 속성값을 "char" 또는 NONE으로 바꾸어 동일한 코드에서 손쉽게 테스트해 볼 수 있습니다.