코린이

PyQt5 GUI 기본 코드

조선롤리팝 2024. 7. 11. 20:00

 

 

PyQt5 Window 생성 기본 코드

import sys #시스템 모듈을 불러옴
from PyQt5.QtWidgets import *
from PyQt5.QtGui import * 
#필요에 따라 사용하고자 하는 매서드만 호출해도되며, "*"를 입력하여 전체를 불러와도 되지만, 메모리 최적화를 위해서 필요한 매서드만 호출하는것이 유리함

class MyWindow(QMainWindow): #Mywindow 클래스를 만들고, QMainWindow를 부모클래스로 보고 상속 받음
    def __init__(self): #부모클래스에서 상속받아 self에 넣어줌
        super().__init__() #QmainWindow를 상속 받았지만, 자동으로 생성자(__init__)가 호출되진 않음, 명시적으로 부모클래스 초기화 매서드 호출 필요함
#----------------------------------------------------------------------------------------

# 해당 위치에 Window 및 위젯을 만드는 코드 작성

#----------------------------------------------------------------------------------------


app = QApplication([]) #QApplication([]) 또는  QApplication(sys.argv)로 사용가능하며, 현재는 sys.argv를 명시하지 않아도 경로를 자동으로 찾음, 일반적으로 관례적으로 사용하고 있으며, 현재 버전에는 없어도 정상 실행됨 단, []을 넣어 빈리스트를 넣어줘야함
win = MyWindow() #Class를 인스턴스변수에 할당, Class를 인스턴스 변수에 할당하여 사용하는 이유는 코드의 유연성, 재사용성 가독성을높이며, 동적으로 클래스를 생성 및 사용하기 위함

win.show() #Win 인스턴스 변수에 Class에서 정의된 GUI를 실행
app.exec_() #app 인스턴스 변수에 QApplication에서 정의된 매서드를 실행하며, exec는 이벤트 루프가 꺼지지 않고 반복적으로 실행을 시켜줌
#참고사항으로 exec와 exec_는 기술적으로 동일한 프로세스를 실행하며, 과거 exec는 다른역할을 하였으며, exec_를 사용해야지만 이벤트 루프를 끄지 않고 반복실행을 하였으나 현재는 exec도 동일한 역할을 하도록 변경되었다.

 

'코린이' 카테고리의 다른 글

스레드 기초 (Thread)  (0) 2024.07.13
프로그래밍 기본 용어 (Python)  (0) 2024.07.12
시티즌 디벨로퍼(Citizen Developer)란?  (0) 2024.07.10
[명명규칙]Python 변수 표기법  (0) 2024.07.09
프로그램 언어 구동 방식  (0) 2024.07.09