less than 1 minute read

Qthread_7.py 구현

Qthread_7.py 코드는 영웅문4에서 생성했던 조건검색식 목록들을 불러오는 역할을 한다.

조건식에 대한 일련번호를 가져오고 제작한 UI의 조건식 선택 박스에서 선택할 수 있도록 한다.

Qthread_7 - init() 생성


from PyQt5.QtCore import *

from kiwoom import Kiwoom



class Thread7(QThread) :

    def __init__(self, parent) :

        super().__init__(parent)

        self.parent = parent

        

        self.k = Kiwoom()

        

        self.detail_account_info_event_loop = QEventLoop()

        

        ### 부가기능 1 : 키움서버에 저장된 종목을 받아오는 함수

        self.k.kiwoom.OnReceiveConditionVer.connect(self.OnReceiveConditionVer) # 키움조건식 일련번호 가져오기

        ###

        

        ### 부가기능 2 : 키움조건식 일련번호를 요청하는 부분

        self.GetConditionLoad()

        ###

        

        for i in self.k.condition_list['Name'] :

            self.parent.kiwoom_list.addItem(i)

조건검색식을 받아오면 조건식 선택 박스에 이름을 넣는다.


조건식 수신 여부 확인


def GetConditionLoad(self) :

    result = self.k.kiwoom.dynamicCall("GetConditionLoad")

    

    if result == 1 :

        print("조건식 받기 성공")

    

    else :

        print("조건식 받기 실패")

        

    self.detail_account_info_event_loop.exec_()

조건식을 서버에서 정상적으로 수신했는지 확인한다.


조건식 받아오기


def OnReceiveConditionVer(self) :

    self.k.condition_list = {'index': [], 'Name': []}



    temporary_condition_list = self.k.kiwoom.dynamicCall("GetConditionNameList()").split(';')

    print(temporary_condition_list)

    

    for data in temporary_condition_list :

        try :

            a = data.split("^")

            

            self.k.condition_list['index'].append(str(a[0]))

            self.k.condition_list['Name'].append(str(a[1]))

        

        except IndexError :

            pass

        

    self.detail_account_info_event_loop.exit()

키움 서버에서 생성했던 조건검색식을 불러오고 문자 ^을 기준으로 일련번호와 조건검색식 이름을 분리하여 리스트에 저장한다.

condition_list에 저장된 조건식들이 조건식 선택 박스에 들어가게 된다.