[Tkinter] command에서 lambda 사용

2020년 09월 21일 by 진아사랑해

    [Tkinter] command에서 lambda 사용 목차
반응형

버튼이 눌렸을 경우 지정된 함수를 수행하는 경우에 많이 사용된다.

물론 'command' parameter가 있는 곳에는 모두 사용할 수 있다

 

예)

    def show_frame(selfCanvaspage_name):

        .......

    인 경우에 

command=lambda:controller.show_frame(self.Canvas1, "PageOne")

- controller class에 선언된 show_frame( )을 호출한다.

- self.Canvas1, "PageOne" 는 show_frame( )에 전달되는값이다.

 

참고) lambda를 사용하여 N개의 명령을 수행할 수 있다

아래의 경우는 

command=lambda: (print("aaa"), controller.show_frame(self.Canvas1, "PageOne"))

- print를 수행한 후에 show_frame( )을 호출한다.

 

버튼에서는 아래의 예처럼 사용한다.

예)

 self.button1 = tk.Button(self.Canvas1, text = "Quit"command=lambda: controller.show_frame(self.Canvas1, "PageOne"), anchor = "nw")

 

반응형