import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
# 파이썬에서 키움증권의 클래스를 사용하려면 PyQt의 QAxWidget 클래스를 사용해 인스턴스를 생성
from PyQt5.QAxContainer import *
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("PYSTOCK")
self.setGeometry(300,300,300,400)
# QAxWidget 클래스의 인스턴스
# QAxWidget 클래스는 QWidget / QAxBase 상속받음
# QAxWidget 요거 하나로 QWidget / QAxBase 정의된 메서드 사용가능
self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
bnt1 = QPushButton("로그인",self)
bnt1.move(20,20)
# 이벤트와 이벤트를 처리할 메서드를 connect라는 메서드로 연결
bnt1.clicked.connect(self.loginClick)
bnt2 = QPushButton("로그인 체크",self)
bnt2.move(20,70)
bnt2.clicked.connect(self.loginCheck)
def loginClick(self):
# 인스턴스를 통해 CommConnect 메서드를 호출하기만 하면
# 로그인을 위한 윈도우가 자동으로 실행 / 반환값으로 로그인 여부 체크
# 리턴 0 성공 , 음수 실패
ret =self.kiwoom.dynamicCall("CommConnect()")
def loginCheck(self):
# 0 미연결/ 1 연결완료
if self.kiwoom.dynamicCall("GetConnectState()") == 0:
self.statusBar().showMessage("접속 안됨")
else:
self.statusBar().showMessage("접속중")
if __name__ =="__main__" :
app = QApplication(sys.argv)
mywindow = MyWindow()
mywindow.show()
app.exec_()
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QAxContainer import *
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("PYSTOCK")
self.setGeometry(300,300,300,150)
self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
# CommConnect 메서드를 MyWindow 클래스의 생성자에서 호출했습니다.
# 따라서 윈도우가 생성됨과 동시에 로그인 창도 함께 화면에 표시
self.kiwoom.dynamicCall("CommConnect()")
# self를 사용하는 이유는 클래스의 다른 메서드에서도 해당 변수를 사용해 객체에 접근하기 위해서
# event_connect 메서드에서도 사용되기 때문에 text_edit가 아니라 self.text_edit
self.text_edit = QTextEdit(self)
self.text_edit.setGeometry(10,60,200,80)
#읽기/쓰기 모드를 변경하기 위해 setEnabled
self.text_edit.setEnabled(False)
# OnEventConnect 이벤트가 발생하면 event_connect 메서드 실행..
# 이벤트와 이벤트 처리 메서드를 연결할 때는 connect 메서드를 사용
self.kiwoom.OnEventConnect.connect(self.event_connect)
# 메서드의 첫 번째 인자는 인스턴스를 의미 두 번째 인자로 nErrCode에 해당하는 값을 받으면 됩니다
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_()
반응형
':::: 개발 :::: > :::: PYTHON(파이썬) ::::' 카테고리의 다른 글
파이썬 튜플 리스트 차이점 , 딕셔너리 코드 (0) | 2022.08.25 |
---|---|
파이썬 간단한 숫자 맞추기 게임 (2) | 2022.08.25 |
셀레니움 카카오 클릭 기부(같이가치) 1차 로그인 ~ 응원 하트 클릭 까지 (0) | 2022.02.25 |
셀레니움( selenium ) 무한 스크롤링 오류날때 (0) | 2022.02.23 |
210925 파이썬 자동매매 공부 시작 GUI (2) | 2021.09.25 |
셀리니움 Selenium 중첩 클래스 찾아오기 (0) | 2021.03.15 |
윈도우 프로그램 스케줄 실행 (0) | 2021.03.10 |
vscode 에서 파이썬 코드 테스트 (0) | 2019.08.26 |