Python/QT

[python QT] 나의 윈도우 클래스 만들기

언제나휴일 2020. 11. 19. 10:35
반응형

안녕하세요. 언제나휴일입니다.

이번에는 QMainWindow에서 파생한 나의 윈도우를 클래스를 만드는 실습을 할게요.

나의 윈도우 실행화면

1. 소스 코드

저는 프로그램을 개발할 때 클래스는 별도의 파일로 작성하는 것을 선호합니다.

여기에서는 나의 윈도우 클래스를 정의한 MyWindow.py와 프로그램 진입점이 있는 Main.py가 있습니다.

#MyWindow.py
import PyQt5.QtWidgets as qtwid
class MyWindow(qtwid.QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("나의 윈도우")
        self.resize(300,300)
#Main.py
import sys
import PyQt5.QtWidgets as qtwid
from MyWindow import MyWindow

app = qtwid.QApplication(sys.argv)
mw = MyWindow()
mw.show()
app.exec_()

2. MyWindow 클래스

PyQt5 모듈을 포함합니다. 여기에서는 위젯 부분을 사용할 거예요.

#MyWindow.py
import PyQt5.QtWidgets as qtwid

QMainWindow를 기반으로 파생 클래스를 정의합니다.

class MyWindow(qtwid.QMainWindow):

생성자 부분에서는 기반 형식 생성자 초기화도 수행합니다.

    def __init__(self):
        super().__init__()

setWindowTitle 메서드는 타이틀을 설정하는 메서드로 기반 형식(QApplication의 기반 형식인 QWidget)에서 제공합니다. 이를 이용하여 타이틀을 설정합니다.

        self.setWindowTitle("나의 윈도우")

resize 메서드는 크기를 조절하는 메서드입니다. 마찬가지로 기반 형식(QApplication의 기반 형식인 QWidget)에서 제공하는 것입니다.

        self.resize(300,300)

3. Main.py - 진입점

필요한 모듈을 추가합니다.

#Main.py
import sys
import PyQt5.QtWidgets as qtwid
from MyWindow import MyWindow

QT GUI 프로그램이 동작하기 위해서 QApplication 개체를 생성해야 합니다.

app = qtwid.QApplication(sys.argv)

MyWindow 개체를 생성하고 시각화합니다.

mw = MyWindow()
mw.show()

QApplication 개체를 실행하여 GUI 프로그램이 정상적으로 동작하게 합니다.

app.exec_()

앞으로 다른 실습에서도 진입점 코드는 크게 달라지지 않습니다.

 

이상으로 나의 윈도우 클래스를 정의하는 실습을 해 보았습니다.

반응형