Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tkinter에서 이벤트 핸들러에 인수를 전달하는 방법은 무엇입니까?

<시간/>

대부분의 상황에서 콜백 함수는 인스턴스 메서드라고 할 수 있습니다. 인스턴스 메서드는 모든 멤버에 액세스하고 인수를 지정하지 않고 작업을 수행합니다.

둘 이상의 구성 요소가 정의되어 있고 해당 구성 요소로 일부 이벤트를 처리하려는 경우를 생각해 보겠습니다. 여러 이벤트를 실행하려면 이벤트 핸들러에 여러 인수를 전달하는 것을 선호합니다.

예시

이 예제에서는 프레임에 여러 버튼 위젯을 생성했으며 위젯 이름을 인수로 전달하여 다양한 이벤트를 처리합니다. 버튼을 클릭하면 레이블 위젯 등이 업데이트됩니다.

#Tkinter 라이브러리에서 가져오기 from tkinter 가져오기 *에서 tkinter 가져오기 ttkfrom tkinter 가져오기 파일 대화 상자#Tkinter의 인스턴스 만들기 framewin=Tk()#geometrywin.geometry 정의("750x250")#다른 Operationsdef에 대한 이벤트 처리기 정의 event_low(button1 ):label.config(text="이것은 낮은 값입니다.")def event_mid(button2):label.config(text="이것은 중간 값입니다.")def event_high(button3):label.config(text="이것은 가장 높은 값입니다. value")#Create a Labellabel=Label(win, text="",font=('Helvetica 15 underline'))label.pack()#프레임 만들기=Frame(win)#프레임에 버튼 만들기button1=ttk. 버튼(프레임, 텍스트="낮음", command=lambda:event_low(button1))button1.pack(pady=10)button2=ttk.Button(frame, text="Medium",command=lambda:event_mid(button2)) button2.pack(pady=10)button3=ttk.Button(frame, text="High",command=lambda:event_high(button3))button3.pack(pady=10)frame.pack()win.mainloop() 

출력

위의 코드를 실행하면 버튼 낮음, 중간 및 높음이 포함된 창이 표시됩니다. 버튼을 클릭하면 창에 일부 레이블 텍스트가 표시됩니다.

Tkinter에서 이벤트 핸들러에 인수를 전달하는 방법은 무엇입니까?