[Python_trading] 파이썬_PyQt 활용한 GUI

[Python_trading] 파이썬_PyQt 활용한 GUI

#hello_PyQt.py

import sys
from PyQt5.QtWidgets import *

app = QApplication(sys.argv)
print(sys.argv) #현재 소스코드의 절대경로임을 확인 할 수 있다. QApplication 클래스의 인스턴스를 생성할 때 생성자로 이 값을 전달해야 한다. 
#UI 를 구성하는 부분
#label = QLabel("hello PyQt")
label = QPushButton("quit") #윈도우 창 속 모양을 바꿀 수 있다.

label.show()
app.exec_()


app.exec_() : 호출시 프로그램은 이벤트 루프에 진입한다. 
TUI 기반의 프로그램은 프로그램이 실행된 후 종료됬지만 GUI 프로그램은 사용자가 윈도우를 닫기 전까지는 계속 실행된 상태로 남아있는다. 
프로그램이 종료되지 않고 실행상태로 남아있는 이유는 이벤트 루트 때문. 이벤트 루프는 기본적으로 무한 루프 구조로 무한루프 상태에서 사용자가 발생시킨 이벤트를 그때그때 처리한다.

#qmain_window.py

import sys
from PyQt5.QtWidgets import *

class Mywindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Pystock")
        self.setGeometry(300,300,300,400)

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

PyQt 에서는 다른 위젯에 포함되지 않은 최상위 위젯을 특별히 윈도우라고 칭한다. 윈도우 생성을 위해서는 QMainWindow, QDialog 클래스를 사용한다. 



댓글