성실한 사람이 되자

성실하게 글쓰자

This is spear

Programming/Python

PyQt5 - python(파이썬 pyqt)

Imaspear 2020. 12. 27. 16:15
728x90

 

대충 간단하게 PyQt5를 실행하는 모습을 보도록 하겠습니다. 

 

import sys
from PyQt5.QtWidgets import *

app = QApplication(sys.argv)
label = QLabel("Hello, PyQt")
label.show()

# event loop
print("start")
app.exec_()
print("end")

 

이 파일을 실행하면 start를 출력하고 app이 시작됩니다. 

 

 

 

실행되고 있는 도중에는 end라는 함수가 출력되지 않습니다. 그 이유는 exec_() 함수 때문에 이벤트가 종료될 때까지 이후의 명령어들은 대기해야 하는 상태이기 때문입니다. 

app을 지워야 end가 출력됩니다. 

app을 지워야 end가 출력됩니다. 

 

 

 

 

import sys
from PyQt5.QtWidgets import *


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Title")
        # setUI 함수 호출
        self.setUI()

    def setUI(self):
        # 이벤트 창 크기 지정
        self.setGeometry(100, 100, 300, 400)
        # 라벨 생성
        self.label = QLabel("click me", self)
        # 라벨 위치 지정
        self.label.move(20, 10)
        # 버튼 생성
        btn = QPushButton("push", self)
        # 버튼 위치 지정
        btn.move(20, 30)


# 파이썬 파일을 실행했을 떄 바로 실행되도록 설정함
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    app.exec_()

위 코드를 실행하면 아래의 이벤트 창을 생성합니다. 특별한 기능을 넣지 않았으므로 push 버튼을 눌러도 아무 것도 실행되지 않습니다..