이 페이지에서

튜토리얼: Qt Widgets 및 Python

먼저, Qt for Python 애플리케이션 프로젝트를 생성합니다. 그런 다음, 기본 템플릿 코드를 수정하여 Qt Widgets를 사용하여 "Hello World "라는 텍스트를 여러 언어로 표시하는 간단한 애플리케이션을 개발합니다.

간단한 Qt Widgets 애플리케이션

Qt for Python 애플리케이션 제작에 대한 더 많은 예제는 Qt for Python 예제 및 튜토리얼을 참조하십시오.

빈 윈도우 프로젝트 만들기

메인 클래스의 소스 파일이 포함된 Qt for Python 애플리케이션을 생성하려면:

  1. File > New Project 로 이동합니다.
  2. 다음 경로를 선택합니다. Application (Qt for Python) > Empty Window > Choose 을 선택하여 ‘ Project Location ’ 대화 상자를 엽니다.

    프로젝트 위치 대화 상자

  3. ' Name'에서 프로젝트 이름을 입력합니다. 예: hello_world.
  4. ' Create in'에서 프로젝트 파일의 경로를 입력합니다. 예: C:\Examples.
  5. Next (Windows 및 Linux) 또는 Continue (macOS)를 선택하여 ' Define Class ' 대화 상자를 엽니다.

    '클래스 정의' 대화 상자

  6. Class name 에서 클래스 이름으로 MyWidget을 입력합니다.
  7. Base class 에서 QWidget 을 기본 클래스로 선택합니다.

    참고: Source file 필드는 클래스 이름과 일치하도록 자동으로 업데이트됩니다.

  8. Project file 에서 프로젝트 파일의 이름을 입력합니다.
  9. Next 또는 Continue 을 선택하여 Define Project Details 대화 상자를 엽니다.

    ‘프로젝트 세부 정보’ 대화 상자

  10. PySide version 에서 생성된 코드의 PySide 버전을 선택합니다.
  11. Next 또는 Continue 를 선택하여 Kit Selection 대화 상자를 엽니다.

    파이썬 프로젝트용 키트 선택하기

  12. 프로젝트를 빌드, 배포 및 실행할 Python 키트를 선택합니다. 기본적으로 소스 디렉터리 내에 프로젝트용 가상 환경이 생성됩니다. 전역 인터프리터를 사용하려면 ‘ Details ’에서 키트의 Python과 동일한 이름을 가진 빌드 구성을 선택하십시오.
  13. Next 또는 Continue 을 선택합니다.
  14. 프로젝트 설정을 검토한 후, Windows 및 Linux에서는 ‘ Finish ’를, macOS에서는 ‘ Done ’를 선택하여 프로젝트를 생성하십시오.

마법사는 다음 파일을 생성합니다:

  • pyproject.toml, 여기에는 Python 프로젝트의 파일 목록과 기타 구성 정보가 포함되어 있습니다.
  • mywidget.py, 클래스에 대한 일부 기본 코드가 포함된 파일입니다.
  • requirements.txt, 생성된 코드의 PySide 버전을 저장합니다. 이 파일을 사용하여 pip를 통해 필요한 PySide 버전을 설치할 수 있습니다.

프로젝트용 PySide6 설치

Edit 모드에서 ‘ Install ’를 선택하여 프로젝트에 PySide6을 설정합니다.

PySide6 설치 안내

Qt Widgets 임포트 추가

마법사는 Qt Widgets 모듈( QWidget)에서 선택한 ` QApplication ` 및 기본 클래스에 접근할 수 있도록 mywidget.py 소스 파일에 임포트를 추가합니다. 또한, 표시될 텍스트의 언어를 무작위로 선택하기 위해 ` random ` 및 ` QtCore `를, UI 요소를 추가하기 위해 ` QtWidgets `를 임포트해야 합니다:

import sys
import random
from PySide6.QtWidgets import QApplication, QWidget
from PySide6 import QtCore, QtWidgets

위젯 기반 UI 추가

마법사는 지정한 기본 클래스를 상속하는, 지정한 이름의 메인 클래스를 추가합니다:

class MyWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        ...

버튼, 레이블 및 레이아웃 위젯을 추가하여 UI 요소를 생성합니다:

...
self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]

self.button = QtWidgets.QPushButton("Click me!")
self.text = QtWidgets.QLabel("Hello World",
                             alignment=QtCore.Qt.AlignCenter)

self.layout = QtWidgets.QVBoxLayout(self)
self.layout.addWidget(self.text)
self.layout.addWidget(self.button)
...

신호와 슬롯 추가

그런 다음, 무작위 기능을 구현하기 위해 시그널과 슬롯을 추가합니다:

    ...
    self.button.clicked.connect(self.magic)

@QtCore.Slot()
def magic(self):
    self.text.setText(random.choice(self.hello))

메인 함수 추가

마법사는 ` QApplication ` 인스턴스를 생성하는 메인 함수를 추가합니다. Qt XML은 명령줄에서 인수를 받을 수 있으므로, ` QApplication ` 객체에 임의의 인수를 전달할 수 있습니다. 일반적으로 인수를 전달할 필요가 없으며, 다음과 같은 방식을 사용할 수 있습니다:

if __name__ == "__main__":
    app = QApplication(sys.argv)
    ...

MainWindow 클래스 인스턴스 생성

마법사는 ` MainWindow ` 클래스의 인스턴스를 생성하고 이를 표시합니다:

...
widget = MyWidget()
widget.show()
...

Qt 코드 실행

마지막으로, 마법사는 ` app.exec() ` 메서드를 호출하여 Qt 메인 루프로 진입하고 Qt 코드 실행을 시작합니다:

...
sys.exit(app.exec())

애플리케이션 실행

실행 버튼 (Run)를 선택하여 애플리케이션을 실행합니다.

관련 항목: 튜토리얼: Qt Quick 및 Python, 튜토리얼: Qt Widgets UI 및 Python, Qt for Python 애플리케이션 개발.

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.