open3D로 GUI 작업을 하던 중 button을 누를때 소환할 콜백함수가 인자를 필요로 할 경우 어떻게 처리할지 헤매다가 아래 방법 발견
cpp에서는 ros callback이나 thread함수 쓸 때 많이 있어왔던 상황이지만 파이썬으로는 처음 구현해봤다
cpp의 바인딩 함수 역할을 해주는 요 functools
모듈을 사용해준다
import functools
self.cam1_enter_b.set_on_clicked(functools.partial(self.enter_img_idx, 1))
저 set_on_clicked
함수에 인자로 들어가는 콜백함수를 이렇게 input param과 바인딩해서 넣지 않고 아래처럼 input param과 함께 콜 하면 input param도 제대로 안들어가고 콜백이 작동을 안함
self.cam1_enter_b.set_on_clicked(self.enter_img_idx(1)) # 오답
참고: https://stackoverflow.com/questions/2347388/python-passing-a-function-with-parameters-as-parameter