[PYTHON] 편리한 알고리즘 트레이딩, PyQt를 활용한 GUI 프로그래밍 - 1. 기초편

2023. 10. 8. 20:34DATA PROGRAMMING/PYTHON

PyQt는 프로그램을 만들 수 있는 파이썬의 라이브러리이다. GUI프로그램을 만들지 않아도 파이썬을 통해 트레이딩을 할 수 있지만, GUI프로그램이 있다면 훨씬 편리하고 빠르고 직관적인 트레이딩이 가능하다.

 

import sys
from PyQt5.QtWidgets import *

def clicked_slot():
    print('clicked')

app = QApplication(sys.argv)

btn = QPushButton("Hello, PyQt")
btn.clicked.connect(clicked_slot)
btn.show()

app.exec_()

간단한 코드를 통해 PyQt를 이해할 수 있다. 우선 clicked_slot이라는 함수를 정의한다. 이때 slot이란 프로그램에서 '시그널'이 발 생했을 때 작동하는 함수 혹은 메소드이다.

 

즉 해당 프로그램의 Hello, PyQt버튼을 누르면 clicked_slot으로 연결돼 clicked라는 문자열이 출력되는것을 알 수 있다.

 

 

import sys
from PyQt5.QtWidgets import *

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUI()

    def setupUI(self):
        self.setWindowTitle("Review")

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

    def btn1_clicked(self):
        QMessageBox.about(self, "message", "clicked")

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

해당 코드를 통해 Review라는 이름을 가진 윈도우를 만들고, Click me를 클릭하면 clicked라는 메세지 박스가 나오는 프로그램을 만들 수 있다.

 

 

마찬가지로 btn1.clicked.connect가 btn1_clicked 슬롯에 연결되어 작동하게 된다.

 

 

 

이렇게 간단한 UI를 구성할 때는 직접 코드를 작성해도 되지만, 점점 복잡해질수록 이는 힘들어진다. 그래서 QT Designer를 활용해야 한다.