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

Tkinter Text 위젯에서 텍스트의 현재 길이를 구하는 방법

Tkinter의 Text 위젯은 사용자로부터 여러 줄의 텍스트 입력을 받을 수 있는 대표적인 위젯입니다. configure() 메서드를 활용하면 글꼴, 텍스트 색상, 배경색 등 Text 위젯의 다양한 속성을 자유롭게 설정할 수 있습니다.

Text 위젯에 입력된 문자 수를 실시간으로 세어 주는 애플리케이션을 만들려면 다음 단계를 따르면 됩니다.

  • Text 위젯을 생성하고 width(너비)와 height(높이) 속성을 정의합니다.

  • 총 문자 수를 화면에 표시하기 위한 Label 위젯이 필요합니다.

  • <KeyPress>(키 누름)와 <KeyRelease>(키 뗌) 이벤트를 정의하여, 이벤트가 발생할 때마다 Label 위젯의 문자 수가 갱신되도록 합니다.

  • 함수 안에는 이벤트 발생 시마다 업데이트되는 Label 설정을 작성합니다. 문자 수를 표시하려면 text.get("1.0", "end-1c")로 가져온 문자열의 길이를 str()로 변환하여 text 값으로 지정합니다.

  • 모든 위젯을 배치(pack)하고 실행 결과를 확인합니다.

예제 코드

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

# tkinter 프레임 또는 윈도우 인스턴스 생성
win = Tk()

# tkinter 윈도우 크기 설정
win.geometry("700x350")

# 현재 텍스트의 길이를 구하는 함수 정의
def update(event):
    label.config(text="Total Characters: " + str(len(text.get("1.0", 'end-1c'))))

# Text 위젯 생성
text = Text(win, width=50, height=10, font=('Calibri 14'))
text.pack()

# Label 위젯 생성
label = Label(win, text="", justify=CENTER, font=('11'))
label.pack()

# 이벤트와 함수 바인딩
text.bind('<KeyPress>', update)
text.bind('<KeyRelease>', update)

win.mainloop()

실행 결과

위 코드를 실행하면 텍스트 편집기와 그 아래에 Label 위젯이 함께 표시됩니다. 텍스트 편집기에 무언가를 입력할 때마다 "Total Characters:" 뒤의 문자 수가 실시간으로 갱신되는 것을 확인할 수 있습니다.

Tkinter Text 위젯에서 텍스트의 현재 길이를 구하는 방법