본문 바로가기
Python

[PyQt6] Getting Started with QtWidgets

by llHoYall 2022. 11. 2.

PyQt는 개인적으로 GUI application을 만들때 가장 애용하는 framework입니다.

간단하게 윈도우 생성하는 예제를 만들어 보겠습니다.

Install Module

$ pip install pyqt6

저는 MAC에서 v3.10.5 버전의 python과 Windows에서 v3.9.6 버전의 python에서 테스트 해보았습니다.

필요한 모듈은 딱 저거 하나입니다.

Import Module

import sys

from PyQt6.QtCore import QSize
from PyQt6.QtWidgets import QApplication, QMainWindow

필요한 모듈들은 이게 전부입니다.

개인적으로 *을 사용해 모든 모듈을 불러오기 보단 필요한 모듈만 명시적으로 import하는 것을 선호하여 이렇게 하고 있습니다.

어떤 것이 어떤 package 혹은 module에 있는지 가독성도 좋고, 암기(?)에도 도움이 되어 좋다고 생각하거든요.

Create Main Window

class TestApplication(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("Example App")
        self.setFixedSize(QSize(640, 480))

        self.show()

메인 윈도우를 생성하는 방법은 여러 가지가 있지만, 개인적으론 class를 사용하는 것이 확장성도 좋고 유지, 보수하기도 좋아서 QMainWindow를 상속받은 class 형태로 사용을 합니다.

Application이 커지고 확장을 하게되면 결국 이렇게 가게 되니까 애초에 작은 application도 이렇게 하는 것이 좋더라고요.

간단한 예제라 타이블과 고정 크기만 명시를 해줬습니다.

Create Application

app = QApplication([])
ta = TestApplication()
sys.exit(app.exec())

Application을 명시하고, event-loop의 종료까지 기다립니다.

우리가 만든 main window는 반드시 이 안에서 호출해야합니다.

Run Application

작성한 PyQt application을 실행하면, 스샷처럼 OS native에 맞는 형태로 윈도우가 잘 나옵니다.

'Python' 카테고리의 다른 글

[PyQt6] Data 전달 with QML  (0) 2022.11.04
[PyQt6] Getting Started with QtQuick  (0) 2022.11.03
[Python] KivyMD - MDTextField  (2) 2022.10.02
[Python] KivyMD - MDIcon  (0) 2022.09.28
[Python] KivyMD - MDLabel  (0) 2022.09.27

댓글