0
폼에 몇 개의 체크 박스가 있는데, 모두 동일한 로직을 구현할 것이므로 각각에 대해 별도의 이벤트 핸들러를 작성하고 싶지는 않습니다. 대신 어떤 체크 박스가 클릭되었는지 알 수있는 이벤트 핸들러 하나만 작성하려고합니다.PyQt, Qt, 하나의 이벤트 핸들러로 많은 아이템 작업하기
예.
function click_handler(sender):
begin
checked_box := sender.tag;
end;
가 여기에 몇 가지 변수에 현재 확인 상자 번호 (태그 속성을 수동으로 델파이 IDE에서 설정 한) 기억 : 델파이에서 나는이 방법을 사용할 수 있습니다.
이벤트 핸들러에 sender
인수가 없으므로 검색하여 Qt를 사용하여 구현할 수 없습니다.
# assign handlers (n assignments)
checkbox_1.clicked.connect(self.cb_1_click)
...
checkbox_<n>.clicked.connect(self.cb_<n>_click)
# separate handler for each check box (n functions, doing the same stupid work)
def cb_1_click:
self.cb_click(sender=1)
...
def cb_<n>_click:
self.cb_click(sender=n)
# main check box click logic (1 function)
def cb_click(sender):
# do something common for all checkboxes
감사합니다.