PYTHON/AUTO TRADE SYSTEM

[자동 매매 시스템 구축하기] GUI 생성·제작·연결

  • -

이전 게시글까지 해서 Pycharm, Python, 키움증권 Open API 모듈, KOA Studio까지 설치했고, 이번 게시글에서는 프로그램을 디자인할 수 있는 근간이 되는 Qt GUI를 설치하여 직접 디자인해보고 코드와 연결하는 내용까지 진행해보도록 하자.

 

 

Qt GUI 설치하고 실행하기

앞서 설치했던 파이참을 열어보도록 하자. 이전 게시글에서 IDE에 대해 설명했던 적이 있는데, IDE는 말 그대로 통합개발환경을 의미하는 만큼, 다양한 프로그램들을 설치하거나 실행하는 동작들을 모두 수행할 수 있다. 한줄로 요약하자면, 그냥 개발할 수 있는 환경 그 자체를 제공해주니 다른 데 왔다갔다 하지 말고 프로그램 내에서 다 해결할 수 있다는 것이다. 이말인 즉슨, 우리는 파이참을 통해 Qt GUI를 설치할 수 있다는 것이다.

파이참 하단 부분을 보면 터미널(terminal)이라는 메뉴가 있는데, 거기서 아래의 명령어 두 줄이면 설치가 가능하다.

 

  • pip install pyqt5
  • pip install pyqt5-qtdesigner

 

설치가 완료되었으면, 실행하는 방법 역시 간단하다. 터미널에서 designer를 입력하고 엔터를 치면 알아서 프로그램을 실행시켜준다. 하단의 우측 사진이 Qt Designer 프로그램이 실행된 화면이다.

 

 

프로그램의 형태를 디자인해보자.

Designer 프로그램의 첫 화면에서 여러 선택지가 나오는데, 거기서 MainWindow를 클릭하면 우측과 같은 화면이 생성된다.

우측의 사진이 여러분이 제작할 버튼과 네모 상자들이 들어갈 그림판이 된다.

이제 왼쪽의 메뉴를 보면 Button, lineEdit 등등 여러 가지 형태들이 존재하는데, 일단은 해당 기능을 사용하기 보다는 코드와 GUI 파일을 연결시키는 것이 가장 목적이기 때문에, 화면 내에는 아무거나 넣고 싶은 기능을 넣고 파이참으로 돌아가도록 하자. (본인은 PushButton 하나만 추가했다.)

이제 이 GUI 파일을 코드와 연결시키기 위해서는 반드시 코드를 실행시키는 PY 파일과 GUI 파일의 위치가 동일한 폴더 내에 놓여있어야 한다. 따라서, GUI 파일을 저장하기를 누른 후에 본인이 작업할 폴더 내에 저장해주도록 하자.

 

 


728x90

 

 

[main.py] 코드와 GUI의 연결

코드를 바탕으로 GUI 파일과 연결하는 데에는 다양한 방법들이 있으나, 대체로 아래와 같이 class 내에 상속해줌으로써 자동적으로 실행되도록 하는 방법이 가장 쉽고 널리 이용된다. (사실, 프로그램을 만들어서 배포할 생각이 아니라 본인만 사용할 거라면 사실 이 방법만한 방법은 따로 없을 것이다.)

GUI와 관련된 코드를 작성할 main.py 파일 내에 아래의 코드를 입력한 후 실행해서 사전에 생성했던 designer 파일(이하 GUI 파일)을 실행시켜보도록 하자. 

import sys
from PyQt5 import uic
from PyQt5 import QMainWindow

form_class = uic.loadUiType("파일명.ui")[0]


class tradesystem(QMainWindow, form_class):
    def __init__(self):
        super().__init__()
        self.setupUi(self)  ## GUI 켜기
        self.setWindowTitle("주식 프로그램")  ## 프로그램 화면 이름 설정


if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = tradesystem()
    myWindow.show()
    app.exec_()

 

위의 코드에서 주석을 통해 설명했듯이, self.setupUi(self)를 통해 GUI 프로그램을 실행시킬 수 있고, self.setWindowTitle("")을 통해 프로그램의 좌상단에 표시될 프로그램의 이름을 설정해줄 수 있다. 여기까지 잘 따라왔다면, 본인이 생성했던 GUI 파일의 형태 그대로 출력되는 모습을 확인할 수 있을 것이다.

(좌) Designer 프로그램 내 모습, (우) 코드 실행 시 모습

 

 

 


728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.