728x90
반응형
"Life is too short, You need python"
Entry 위젯에 Bind를 이용하여 클릭 시 초기 값이 사라지고 해제 시 다시 초기 문구가 뜨게 하는 이벤트 설정 방법에 대해 소개 드리겠습니다. Entry를 활용하는 UI 제작 시 아주 유용한 팁입니다.
수행 항목
- 위젯 tk.Entry.insert에 초기 텍스트를 추가 하고 Font Color는 'grey'로 설정
- 항목이 포커스를 받으면 기본값이 삭제 됩니다.
- 텍스트를 입력합니다.
- Enter 키를 누르면 항목의 값이 추출되고 항목은 회색의 기본 텍스트로 재설정됩니다.
- 상자 외부 클릭 시 항목이 기본 회색으로 재설정됩니다.
코드
다음은 코드의 모습입니다.
import tkinter as tk
def handle_focus_in(_):
full_name_entry.delete(0, tk.END)
full_name_entry.config(fg='black')
def handle_focus_out(_):
full_name_entry.delete(0, tk.END)
full_name_entry.config(fg='grey')
full_name_entry.insert(0, "Example : py kim")
def handle_enter(txt):
print(full_name_entry.get())
handle_focus_out('dummy')
root = tk.Tk()
label = tk.Label(root, text='이름을 입력 하세요')
label.grid(sticky='e', padx =10, pady = 15)
full_name_entry = tk.Entry(root, bg = 'white', width = 30, fg = 'grey')
full_name_entry.grid(row = 0, column = 1, padx =10, pady = 15, columnspan = 2)
full_name_entry.insert(0, "Example : py kim")
full_name_entry.bind("<FocusIn>", handle_focus_in)
full_name_entry.bind("<FocusOut>", handle_focus_out)
full_name_entry.bind("<Return>", handle_enter)
root.mainloop()
실행 화면
728x90
반응형
'PYTHON > Tips' 카테고리의 다른 글
(Python/Basic) Print 활용 TIP(feat. datetime) (0) | 2022.06.25 |
---|---|
(Python/OS) os.path.getctime() / os.path.getmtime() 파일의 생성/수정 날짜 확인 (0) | 2022.06.15 |
(Python/Pandas) Format a number (천 단위 구분 기호 및 기타 서식 적용) (0) | 2022.06.13 |
(5min. Python) Pandas read_excel sheet 불러오기 옵션 (0) | 2022.06.13 |
(Python/Matplotlib) 파이썬 폰트 영문명(영문이름) 확인 (0) | 2022.06.04 |