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

Tkinter 텍스트 위젯에서 특정 단어의 색상을 변경하는 방법

Tkinter의 텍스트 위젯(Text Widget)은 여러 줄로 된 텍스트를 생성하고 화면에 표시할 때 사용됩니다. 이 위젯은 텍스트를 자유롭게 구성하고 편집할 수 있도록 다양한 함수와 메서드를 제공합니다.

텍스트 위젯 안에서 특정 단어의 색상만 바꾸고 싶다면 tag_add(태그 이름, 범위) 메서드를 사용하면 됩니다. 이 메서드는 서식을 적용하고 싶은 단어나 구간을 선택하는 역할을 합니다. 단어가 선택된 후에는 tag_config(속성) 메서드를 통해 글자색, 배경색 등 다양한 속성을 지정할 수 있습니다.

예제 코드

아래 예제에서는 텍스트 위젯에서 선택한 단어의 색상을 변경하는 방법을 보여줍니다.

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

# Tkinter 윈도우 인스턴스 생성
win = Tk()

# 윈도우 크기 설정
win.geometry("600x250")

# 텍스트 위젯 생성
text = Text(win)
text.insert(INSERT, "Hello World!\n")
text.insert(END, "This is a New Line")

text.pack(fill=BOTH)

# 특정 색상으로 텍스트 위젯 태그 구성
text.tag_config("start", foreground="red")
text.tag_add("start", "1.6", "1.12")

win.mainloop()

실행 결과

위 코드를 실행하면 "Hello World"라는 문자열이 포함된 창이 나타나며, 그중 "World"라는 단어만 빨간색으로 표시되는 것을 확인할 수 있습니다.

코드 설명

핵심은 두 가지 메서드의 역할을 이해하는 것입니다. 먼저 tag_config("start", foreground="red")는 "start"라는 이름의 태그를 정의하고 해당 태그에 적용될 스타일(여기서는 빨간색 글자)을 지정합니다. 그다음 tag_add("start", "1.6", "1.12")는 첫 번째 줄의 6번째 문자부터 12번째 문자까지의 범위에 "start" 태그를 적용합니다.

Tkinter에서 위치 인덱스는 "줄.문자" 형식으로 표현되며, 줄 번호는 1부터, 문자 위치는 0부터 시작합니다. 따라서 "1.6"은 첫 줄의 여섯 번째 문자 위치를 의미합니다. 이러한 방식으로 원하는 텍스트 구간에 자유롭게 색상뿐 아니라 배경색(bg), 폰트(font) 등 다양한 서식을 적용할 수 있습니다.