Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter에서 버튼 값을 Entry 위젯에 표시하는 방법

Tkinter 애플리케이션에서 버튼은 매우 유용하게 활용되는 위젯입니다. 각 버튼에 클릭 시 특정 값을 Entry 위젯에 삽입하는 함수를 연결하면, 버튼의 값을 손쉽게 Entry 필드에 표시할 수 있습니다. 이를 위해서는 먼저 클릭했을 때 해당 값을 Entry 위젯에 추가하는 command 옵션이 설정된 버튼들을 정의해야 합니다.

Entry 위젯의 내용을 새 값으로 업데이트하려면 delete(0, END) 메서드를 사용하여 기존에 입력된 값을 먼저 삭제한 뒤, 새로운 값을 삽입하는 방식으로 처리합니다.

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk

# Tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()

# 윈도우 크기 설정
win.geometry("700x350")

def on_click(text):
    entry.delete(0, END)   # 기존 값 삭제
    entry.insert(0, text)  # 새 값 삽입

# Entry 위젯 추가
entry = Entry(win, width=25)
entry.pack()

# 윈도우에 버튼 추가
b1 = ttk.Button(win, text="A", command=lambda: on_click("A"))
b1.pack()

b2 = ttk.Button(win, text="B", command=lambda: on_click("B"))
b2.pack()

b3 = ttk.Button(win, text="C", command=lambda: on_click("C"))
b3.pack()

win.mainloop()

실행 결과

위 코드를 실행하면 여러 개의 버튼이 포함된 윈도우가 화면에 나타납니다. 버튼을 클릭하면 해당 버튼의 값이 Entry 필드에 즉시 표시됩니다. 예를 들어 'A' 버튼을 누르면 Entry 위젯에 'A'가 출력되고, 다른 버튼을 누르면 기존 값이 지워지고 새로운 값으로 교체됩니다.

이처럼 lambda 함수를 활용하면 버튼마다 별도의 콜백 함수를 작성하지 않고도 하나의 공용 함수(on_click)에 서로 다른 인자를 전달하여 코드를 간결하게 유지할 수 있습니다. 계산기나 폼 입력 UI처럼 사용자의 선택 값을 입력 필드에 반영해야 하는 애플리케이션에서 널리 사용되는 패턴입니다.