본문으로 바로가기

키움증권 OpenAPI의 기능을 호출하고 사용하면 적절한 Event를 발생해 줍니다.


가장 간단한 로그인 이벤트에 대한 기능을 구현 해봤습니다.


로그인 버튼을 클릭하는 경우 키움 API 접속창이 연결이 되고


정보를 입력 후 로그인에 성공하는 경우 "로그인 성공" 이라는 문구를 Text Edit에 표시하는 예제 입니다.





Github : https://github.com/ResetDy/Blog_Python/blob/master/loginEventTest.py


import sys
from PyQt5.QtWidgets import *
from PyQt5.QAxContainer import *
from PyQt5.QtGui import *

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("DonDon Test")
        self.setGeometry(1600, 400, 1000, 1000)

        self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")

        btn1 = QPushButton("Login", self)
        btn1.move(20, 20)
        btn1.clicked.connect(self.btn1_clicked)

        btn2 = QPushButton("Click State", self)
        btn2.move(20, 70)
        btn2.clicked.connect(self.btn2_clicked)

        self.text_edit = QTextEdit(self)
        self.text_edit.setGeometry(10, 150, 280, 80)
        self.text_edit.setEnabled(False)

        self.kiwoom.OnEventConnect.connect(self.event_connect)

    def btn1_clicked(self):
        self.login()

    def btn2_clicked(self):
        if self.kiwoom.dynamicCall("GetConnectState()") == 0:
            self.statusBar().showMessage("Not Connect")
        else:
            self.statusBar().showMessage("Connected")

    def login(self):
        self.kiwoom.dynamicCall("CommConnect()")

    def event_connect(self, err_code):
        if err_code == 0:
            self.text_edit.append("로그인 성공")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mywindow = MyWindow()
    mywindow.show()
    app.exec_()



댓글을 달아 주세요

티스토리 툴바