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

Tkinter 텍스트 위젯에서 현재 줄을 강조 표시하는 방법

Tkinter의 텍스트(Text) 위젯은 여러 줄에 걸친 사용자 입력을 받을 수 있는 위젯입니다. 이 위젯을 사용하면 텍스트를 삽입하거나 정보를 화면에 표시하고, 입력된 내용을 가져오는 등 다양한 작업을 수행할 수 있습니다.

텍스트 위젯에서 현재 선택된 텍스트나 특정 줄을 강조 표시하려면 tag_add() 메서드를 활용할 수 있습니다. 이 메서드는 지정한 범위의 텍스트에만 태그를 추가하여 배경색이나 글자색 등의 스타일을 적용해 줍니다.

구현 예제

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

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

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

# 텍스트 위젯 추가
text = Text(win, width=80, height=15, font=('Calibri 12'))

# 텍스트 위젯에 기본 텍스트 삽입
text.insert(INSERT, "Tkinter is a Python Library to create GUI-based applications.")
text.insert(END, "Learning Tkinter is Awesome!!")

# 태그를 추가하여 텍스트 선택 및 강조
text.tag_add("start", "1.0", "1.7")
text.tag_configure("start", background="OliveDrab1", foreground="black")
text.pack()

win.mainloop()

실행 결과

위 코드를 실행하면 텍스트 위젯이 포함된 창이 나타나며, tag_add()로 지정한 범위의 텍스트가 올리브 드랍(OliveDrab1) 색상의 배경으로 강조 표시된 것을 확인할 수 있습니다.

코드 설명

  • text.tag_add("start", "1.0", "1.7"): 첫 번째 줄의 0번째 문자부터 7번째 문자까지 "start"라는 이름의 태그를 적용합니다. Tkinter의 인덱스는 "줄.문자" 형식으로 지정합니다.
  • text.tag_configure(): 태그에 적용할 스타일을 정의합니다. 여기서는 배경색(background)과 글자색(foreground)을 설정했습니다.

이 방법을 응용하면 사용자가 커서를 위치한 현재 줄을 실시간으로 감지하여 강조하는 기능도 구현할 수 있습니다. index("insert") 메서드로 현재 커서 위치를 확인하고, 해당 줄 전체에 태그를 적용하면 됩니다.