Python tkinter 강좌 : 제 18강 - Text

Python tkinter Text

Python tkinter 강좌 : 제 18강 - Text
[ Python-Tkinter ] - 윤대희

Text(텍스트)


Text을 이용하여 여러 줄문자열을 출력하기 위한 텍스트를 생성할 수 있습니다.



Text 사용


import tkinter

window=tkinter.Tk()
window.title("YUN DAE HEE")
window.geometry("640x400+100+100")
window.resizable(True, True)

text=tkinter.Text(window)

text.insert(tkinter.CURRENT, "안녕하세요.\n")
text.insert("current", "반습니다.")
text.insert(2.1, "갑")

text.pack()

text.tag_add("강조", "1.0", "1.6")
text.tag_config("강조", background="yellow") 
text.tag_remove("강조", "1.1", "1.2")

window.mainloop()


text=tkinter.Text(window)

text.insert(tkinter.CURRENT, "안녕하세요.\n")
text.insert("current", "반습니다.")
text.insert(2.1, "갑")

text.pack()

text.tag_add("강조", "1.0", "1.6")
text.tag_config("강조", background="yellow") 
text.tag_remove("강조", "1.1", "1.2")

tkinter.Text(윈도우 창, 파라미터1, 파라미터2, 파라미터3, ...)을 사용하여 해당 윈도우 창에 표시할 텍스트의 속성을 설정할 수 있습니다.

파라미터를 사용하여 텍스트의 속성을 설정합니다.



Text Method


텍스트 문자열 메소드

이름 의미 설명
insert(index, “문자열”) 문자열 삽입 해당 index 위치에 문자열을 삽입
delete(start_index, end_index) 문자열 삭제 start_index부터 end_index까지의 문자열 삭제
get(start_index, end_index) 문자열 반환 start_index부터 end_index까지의 문자열 반환
index(index) 인덱스 반환 index가 음수 일 경우, 1.0으로 반환
see(index) 문자열 표시 반환 index 위치에 텍스트가 표시되면 True 반환


  • Tip : indexy.x를 사용, y줄, x번째 문자를 의미함 예) 첫 번째 줄, 첫 번째 문자 = 1.0



텍스트 마크 메소드

이름 의미 설명
mark_set(mark, index) 마크 위치 설정 해당 마크의 위치 재설정
mark_unset(mark) 마크 위치 제거 해당 마크의 표시 제거
mark_gravity(mark,gravity) 키보드 커서 삽입 위치 변경 해당 마크 사용 시, 좌측 삽입 또는 우측 삽입으로 변경
index(mark) 마크 위치 반환 해당 마크 위치 반환
mark_names() 모든 마크 반환 텍스트에서 사용된 모든 마크를 반환


  • Tip : gravityleft(좌측 삽입)와 right(우측 삽입)로 사용, 기본값은 right를 사용



텍스트 마크

이름 텍스트 이름 의미
- y.x y 번째 줄 x 번째 문자
- 1.0 첫 번째 줄 첫 번째 문자
- y.0 y 번째 줄 첫 번째 문자
- y.end y 번째 줄 마지막 문자
tkinter.INSERT insert 삽입 커서의 위치
tkinert.CURRENT current 마우스 포인터에 가장 가까운 문자의 위치
tkinter.END end 텍스트의 마지막 문자 위치
tkinert.SEL_FIRST sel.firs t 블록처리 되었을 때의 앞 부분
tkinert.SEL_LAST sel.last 블록처리 되었을 때의 뒷 부분
- [마크] linestart 마크에서 앞의 행
- [마크] lineend 마크에서 뒤의 행
- [마크] wordstart 마크에서 단어의 앞


  • Tip : 3.5 wordstart로 마크를 사용할 경우, 3번째 줄 5 번째에 포함된 단어의 앞 부분으로 설정됩니다.



텍스트 마크 메소드

이름 의미 설명
tag_add(tagname, start_index, end_index) 태그 생성 start_index부터 end_index까지의 tagname을 생성
tag_remove(tagname, start_index, end_index) 태그 제거 start_index부터 end_index까지의 tagname의 설정 제거
tag_delete(tagname) 태그 삭제 tagname의 설정 및 선언 삭제
tag_config(tagname, 파라미터1, 파라미터2, …) 태그 부착 tagname 범위 만큼 속성 설정



Text Parameter


텍스트 텍스트 설정

이름 의미 기본값 속성
wrap 자동 줄 내림 설정 방법 char none, char, word
tabs 텍스트의 Tab 간격 56 상수
tabstyle 텍스트의 Tab 간격 형식 tabular tabular, wordprocessor
startline 텍스트의 데이터 저장소에 저장될 시작 줄 시작 줄 상수
endline 텍스트의 데이터 저장소에 저장될 마지막 줄 마지막 줄 상수
spacing1 텍스트의 상단 수직 간격 0 상수
spacing2 텍스트의 줄과 줄 사이 간격 0 상수
spacing3 텍스트의 하단 수직 간격 0 상수



텍스트 형태 설정

이름 의미 기본값 속성
width 텍스트의 너비 80 상수
height 텍스트의 높이 24 상수
relief 텍스트의 테두리 모양 flat flat, groove, raised, ridge, solid, sunken
borderwidth=bd 텍스트의 테두리 두께 1 상수
background=bg 텍스트의 배경 색상 SystemButtonFace color
foreground=fg 텍스트의 문자열 색상 SystemButtonFace color
insertwidth 텍스트의 키보드 커서 너비 2 상수
insertborderwidth 텍스트의 키보드 커서 테두리 두께 0 상수
insertbackground 텍스트의 키보드 커서 색상 SystemWindowText color
selectborderwidth 텍스트의 문자열 블록처리 테두리 두께 0 상수
selectbackground 텍스트의 문자열 블록처리 배경 색상 SystemHighlightText color
selectforeground 텍스트의 문자열 블록처리 문자열 색상 SystemHighlightText color
inactiveselectbackground 텍스트의 문자열 블록처리 중 다른 위젯 선택시 블록처리 배경 색상 - color
padx 텍스트의 테두리와 내용의 가로 여백 1 상수
pady 텍스트의 테두리와 내용의 세로 여백 1 상수



텍스트 형식 설정

이름 의미 기본값 속성
font 텍스트의 문자열 글꼴 설정 TkDefaultFont font
cursor 텍스트의 마우스 커서 모양 - 커서 속성
xscrollcommand 텍스트의 가로스크롤 객체 적용 - Scrollbar위젯.set
yscrollcommand 텍스트의 세로스크롤 객체 적용 - Scrollbar위젯.set
exportselection 텍스트의 선택 항목 여부 설정 True Boolean
setgrid 텍스트의 격자 크기 조정 설정 False Boolean



텍스트 상태 설정

이름 의미 기본값 속성
state 상태 설정 normal normal, disabled



텍스트 하이라이트 설정

이름 의미 기본값 속성
highlightcolor 텍스트가 선택되었을 때 색상 SystemWindowFrame color
highlightbackground 텍스트가 선택되지 않았을 때 색상 SystemButtonFace color
highlightthickness 텍스트가 선택되었을 때 두께 (두께 설정) 0 상수



텍스트 동작 설정

이름 의미 기본값 속성
takefocus Tab 키를 이용하여 위젯 이동 허용 여부 False Boolean
blockcursor 텍스트의 키보드 커서를 블록으로 사용 False Boolean
undo 텍스트의 실행 취소 사용 여부 False Boolean
maxundo 텍스트의 실행 취소 최대 횟수 - 상수
autoseparators 텍스트의 실행 취소 자동 저장 여부 True Boolean



참고


  • wrap 파라미터

    • none : 줄 내림 하지 않음
    • char : 글자 단위로 줄 내림
    • word : 단어 단위로 줄 내림

  • wordprocessor로 사용할 경우, 워드프로세서 기준 표준 간격으로 사용함

  • cursor 파라미터

    • arrow, based_arrow_down, based_arrow_up, boat, bogosity, bottom_left_corner, bottom_right_corner, bottom_side, bottom_tee, box_spiral, center_ptr, circle, clock, coffee_mug, cross, cross_reverse, crosshair, diamond_cross, dot, dotbox, double_arrow, draft_large, draft_small, draped_box, exchange, fleur, gobbler, gumby, hand1, hand2, heart, icon, iron_cross, left_ptr, left_side, left_tee, leftbutton, ll_angle, lr_angle, man, middlebutton, mouse, pencil, pirate, plus, question_arrow, right_ptr, right_side, right_tee, rightbutton, rtl_logo, sailboat, sb_down_arrow, sb_h_double_arrow, sb_left_arrow, sb_right_arrow, sb_up_arrow, sb_v_double_arrow, shuttle, sizing, spider, spraycan, star, target, tcross, top_left_arrow, top_left_corner, top_right_corner, top_side, top_tee, trek, ul_angle, umbrella, ur_angle, watch, wait, xterm, X_cursor

  • highlightbackground를 설정하였을 경우, 텍스트가 선택되지 않았을 때에도 두께가 표시됨

  • Ctrl + Z를 사용하여 실행 취소, Ctrl + Y를 사용하여 다시 실행

  • autoseparatorsTrue로 설정하였을 경우, 단 시간 내에 입력된 문자열을 실행 취소할 때 기록을 매번 저장하지 않아 모두 지워짐


Book Image

책이 출간되었습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C# OpenCvSharp4
  • Python OpenCV4
  • Using Tesseract
  • Using TensorFlow
  • Using Regular Expression
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post Python tkinter 강좌 : 제 17강 - Scale ⤧  Next post Python tkinter 강좌 : 제 19강 - LabelFrame
    Python-Tkinter Category