더북(TheBook)

이 과정을 담은 전체 코드는 다음과 같습니다. 혹시 코드에 있는 함수가 모두 다 이해되지 않더라도 큰 문제는 없습니다. 코드를 정확히 이해하지 못하더라도 큰 흐름을 먼저 익히고 모르는 코드는 그다음 찾아보면 됩니다.

Kiwoom.py

from PyQt5.QAxContainer import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class Kiwoom(QAxWidget):
    def __init__(self):
        super().__init__()
        self._make_kiwoom_instance()
        self._set_signal_slots()
        self._comm_connect()

    def _make_kiwoom_instance(self): ------ Kiwoom 클래스가 API를 사용할 수 있도록 등록하는 함수
        self.setControl("KHOPENAPI.KHOpenAPICtrl.1")

    def _set_signal_slots(self): ------ API로 보내는 요청들을 받아 올 슬롯을 등록하는 함수
        self.OnEventConnect.connect(self._login_slot) ------ 로그인 시도 결과에 대한 응답을 _login_slot으로 받도록 설정

    def _login_slot(self, err_code): ------ 로그인 시도 결과에 대한 응답을 얻는 함수
        if err_code == 0:
            print("connected")
        else:
            print("not connected")

        self.login_event_loop.exit() ------ 로그인 시도 결과에 대한 응답 대기 종료

    def _comm_connect(self): ------ 로그인 요청 신호를 보낸 이후 응답 대기를 설정하는 함수: 로그인 함수
        self.dynamicCall("CommConnect()")

        self.login_event_loop = QEventLoop() ------ 로그인 시도 결과에 대한 응답 대기 시작
        self.login_event_loop.exec_()
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.