상위 목록: 하위 목록: 작성 날짜: 읽는 데 3 분 소요

Entry(기입창)

Entry를 이용하여 한 줄의 텍스트를 입력받거나 출력하기 위한 기입창을 생성할 수 있습니다.



Entry 사용

import tkinter
from math import *

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

def calc(event):
    label.config(text="결과="+str(eval(entry.get())))

entry=tkinter.Entry(window)
entry.bind("<Return>", calc)
entry.pack()

label=tkinter.Label(window)
label.pack()

window.mainloop()


def calc(event):
    label.config(text="결과="+str(eval(entry.get())))

entry=tkinter.Entry(window)
entry.bind("<Return>", calc)
entry.pack()

label=tkinter.Label(window)
label.pack()

tkinter.Entry(윈도우 창, 매개변수1, 매개변수2, 매개변수3, ...)을 사용하여 해당 윈도우 창에 표시할 기입창의 속성을 설정할 수 있습니다.

매개변수를 사용하여 기입창의 속성을 설정합니다.

Entry.bind()를 이용하여 key나 mouse 등의 event를 처리하여 메서드나 함수를 실행시킬 수 있습니다.

기입창에 간단한 수학함수 등을 작성 후 Enter 키를 입력시, 라벨에 결과가 표시됩니다.

  • Tip : 4+4*cos(0.5)을 입력시 결과=7.51033...이 반환됩니다.

  • Tip : bind()로 연결한 함수는 event 매개변수를 하나 전달받으므로, def calc(event):처럼 매개변수를 반드시 선언해야 합니다.

  • Tip : entry.get()은 항상 문자열(str)을 반환하므로, 숫자로 계산하려면 int()나 float()로 변환해야 합니다.

  • Tip : 위의 예제는 입력된 문자열을 eval()로 실행하므로 학습용으로만 사용하며, 실제 프로그램에서는 사용자 입력을 eval()로 실행하지 않습니다.

  • Tip : tkinter.ttk.Entry는 운영체제의 기본 테마가 적용되는 기입창이며, 사용 방법은 같습니다.



Entry Method

이름 의미
insert(index, “문자열”) index 위치에 문자열 추가
delete(start_index, end_index) start_index부터 end_index까지의 문자열 삭제
get() 기입창의 텍스트를 문자열로 반환
index(index) index에 대응하는 위치 획득
icursor(index) index 앞에 키보드 커서 설정
select_adjust(index) index 위치까지의 문자열을 블록처리
select_range(start_index, end_index) start_index부터 end_index까지 블록처리
select_to(index) select_from()으로 설정한 위치부터 index까지 블록처리
select_from(index) 블록처리의 시작 위치(앵커)를 index 위치로 설정
select_present() 블록처리 되어있는 경우 True, 아닐 경우 False
select_clear() 블록처리 해제
xview() 가로스크롤 연결
        xview_scroll(num, str)                               가로스크롤의 속성 설정            


  • xview_scroll

    • num
      • num > 0 : 왼쪽에서 오른쪽으로 스크롤
      • num < 0 : 오른쪽에서 왼쪽으로 스크롤
    • str
      • units : 문자 너비로 스크롤
      • pages : 위젯 너비로 스크롤
  • Tip : index에는 0(맨 앞)과 같은 정수 외에도 "end"(맨 뒤), "insert"(키보드 커서 위치)를 사용할 수 있습니다. entry.delete(0, "end")는 기입창의 모든 문자열을 삭제합니다.

  • Tip : entry.insert(0, "기본값")을 이용하여 기입창에 초기 문자열을 표시할 수 있습니다.



Entry Parameter

기입창 문자열 설정

이름 의미 기본값 속성
show 기입창에 표시되는 문자 - 문자
textvariable 기입창에 표시할 문자열을 가져올 변수 - -
justify 기입창의 문자열 정렬 방법 left center, left, right


기입창 형태 설정

이름 의미 기본값 속성
width 기입창의 너비 20 상수
relief 기입창의 테두리 모양 sunken flat, groove, raised, ridge, solid, sunken
borderwidth=bd 기입창의 테두리 두께 1 상수
background=bg 기입창의 배경 색상 SystemWindow color
foreground=fg 기입창의 문자열 색상 SystemWindowText color
insertwidth 기입창의 키보드 커서 너비 2 상수
insertborderwidth 기입창의 키보드 커서 테두리 두께 0 상수
insertbackground 기입창의 키보드 커서 색상 SystemWindowText color
selectborderwidth 기입창의 문자열 블록처리 테두리 두께 0 상수
selectbackground 기입창의 문자열 블록처리 배경 색상 SystemHighlight color
selectforeground 기입창의 문자열 블록처리 문자열 색상 SystemHighlightText color


기입창 형식 설정

이름 의미 기본값 속성
font 기입창의 문자열 글꼴 설정 TkTextFont font
cursor 기입창의 마우스 커서 모양 xterm 커서 속성
xscrollcommand 기입창의 가로스크롤 위젯 적용 - Scrollbar위젯.set


기입창 상태 설정

이름 의미 기본값 속성
state 상태 설정 normal normal, readonly, disabled
readonlybackground readonly 상태일 때 기입창의 배경 색상 SystemButtonFace color
disabledbackground disabled 상태일 때 기입창의 배경 색상 SystemButtonFace color
disabledforeground disabled 상태일 때 기입창의 문자열 색상 SystemDisabledText color


기입창 하이라이트 설정

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


기입창 동작 설정

이름 의미 기본값 속성
takefocus Tab 키를 이용하여 위젯 이동 허용 여부 True Boolean
insertontime 기입창의 키보드 커서 깜빡임이 보이는 시간 600 상수(ms)
insertofftime 기입창의 키보드 커서 깜빡임이 보이지 않는 시간 300 상수(ms)


참고

  • show="*" 입력 시, 입력되는 모든 문자는 * 처리되어 표시됨 (비밀번호 입력창 등에 사용)

  • 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

  • 기본 설정은 normal 상태의 설정을 의미함 (bg, fg 등의 설정)

  • readonly 상태는 키보드로 입력할 수 없지만 문자열을 선택·복사할 수 있으며, insert() 등의 메서드로도 수정할 수 없음

  • highlightbackground를 설정하였을 경우, 기입창이 선택되지 않았을 때에도 두께가 표시됨

댓글 남기기