그럼 하나씩 살펴보겠습니다. 먼저 로그인 처리에 대한 응답을 받을 slot 함수를 만들고 등록해야 합니다. 여기서 헷갈릴 수 있는 부분은 slot 함수를 만든 후 등록하는 과정이 필요하다는 것입니다. 우선 아무 배경지식 없이 가벼운 마음으로 다음 코드를 이어서 작성해 보겠습니다.
Kiwoom.py
(...)
class Kiwoom(QAxWidget):
def __init__(self):
super().__init__()
self._make_kiwoom_instance()
def _make_kiwoom_instance(self):
self.setControl("KHOPENAPI.KHOpenAPICtrl.1")
def _set_signal_slots(self):
self.OnEventConnect.connect(self._login_slot)
무엇인지는 잘 모르겠지만, 이 함수명은 _set_signal_slots고 슬롯들을 등록한다는 의미인 것 같습니다. 등록할 슬롯이 하나가 아니라 여러 개인 이유는 앞서 말했듯이 API 서버로 보낼 수 있는 요청들은 각각 종류와 성격이 다르며, 마찬가지로 slot 함수들도 요청에 따라 다르게 만들어야 하기 때문입니다. 즉, API에 보내는 요청별(로그인, TR 조회, 실시간 데이터 등)로 다른 슬롯들이 필요하며, 어떤 응답을 받을 때 어떤 슬롯을 이용하겠다는 설정이 필요합니다.