Python tkinter 강좌 : 제 18강 – Text

   

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.xy 번째 줄 x 번째 문자
-1.0첫 번째 줄 첫 번째 문자
-y.0y 번째 줄 첫 번째 문자
-y.endy 번째 줄 마지막 문자
tkinter.INSERTinsert삽입 커서의 위치
tkinert.CURRENTcurrent마우스 포인터에 가장 가까운 문자의 위치
tkinter.ENDend텍스트의 마지막 문자 위치
tkinert.SEL_FIRSTsel.firs t블록처리 되었을 때의 앞 부분
tkinert.SEL_LASTsel.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자동 줄 내림 설정 방법charnone, char, word
tabs텍스트의 Tab 간격56상수
tabstyle텍스트의 Tab 간격 형식tabulartabular, wordprocessor
startline텍스트의 데이터 저장소에 저장될 시작 줄시작 줄상수
endline텍스트의 데이터 저장소에 저장될 마지막 줄마지막 줄상수
spacing1텍스트의 상단 수직 간격0상수
spacing2텍스트의 줄과 줄 사이 간격0상수
spacing3텍스트의 하단 수직 간격0상수



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



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



텍스트 상태 설정
이름의미기본값속성
state상태 설정normalnormal, disabled



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



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



참고

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


도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post Python tkinter 강좌 : 제 19강 – LabelFrame ⤧  Previous post Python tkinter 강좌 : 제 17강 – Scale