파이썬/tkinter

tkinter entry, combobox 이벤트 처리 (bind)

개발자J군 2020. 9. 29. 11:55

tkiner 프로그램에서 이메일이나 검색어 등 디폴트 예시 값이 있다고 가정하였을 때,

클릭하면 바로 지워지는 것이 사용자에게 편하다. 물론 여러가지 이벤트가 발생될 수 있고 상황에 따라 응용하면 된다.

 

1.Entry

email = Entry(win)

#해당영역을 좌클릭 했을 경우 claer 함수 호출
email.bind("<Button-1>",clear)

def clear(event):
	if email.get() == "example@email.com" :
		email.delete(0,len(email.get()))
        

예시를 주기 위해 example@email.com 을 디폴트 값으로 설정해 둔 경우 사용자가 입력을 위해 좌클릭 하면 clear 함수가 호출된며, 기존 내용이 삭제된다.

 

다양한 이벤트 명령어는 아래 글에 정리가 잘 되어있다.

076923.github.io/posts/Python-tkinter-23/

 

2.combobox

num_combo = ttk.Combobox(win, state="readonly")
num_combo.set("200개")
num_combo.bind("<<ComboboxSelected>>", price_change)

def price_change(event):
    if total_price != 0:
    	num_combo = int(num_combo.get().split("개")[0])
        total_price = num_combo * price.get()

 콤보박스의 수량을 변경할 경우 총 가격이 변경되는 이벤트이다. 라벨이나 text 위젯 등을 연결해서 이벤트 결과를 처리할 수 있다.

반응형