튜토리얼: Qt Widgets 및 Python
먼저 Qt for Python 애플리케이션 프로젝트를 만듭니다. 그런 다음 상용구 코드를 편집하여 Qt 위젯을 사용하여 Hello World라는 텍스트를 여러 언어로 표시하는 작은 애플리케이션을 개발합니다.

Qt for Python 애플리케이션을 만드는 더 많은 예제는 Qt for Python 예제 및 자습서를 참조하세요.
빈 창 프로젝트 만들기
메인 클래스의 소스 파일이 있는 Qt for Python 애플리케이션을 만들려면 다음과 같이 하세요:
- File > New Project 으로 이동합니다.
- 선택 Application (Qt for Python) > Empty Window > Choose 을 선택하여 Project Location 대화 상자를 엽니다.

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

- Class name 에 MyWidget을 클래스 이름으로 입력합니다.
- Base class 에서 QWidget 를 기본 클래스로 선택합니다.
참고: Source file 필드는 클래스 이름과 일치하도록 자동으로 업데이트됩니다.
- Project file 에 프로젝트 파일의 이름을 입력합니다.
- Next 또는 Continue 을 선택하여 Define Project Details 대화 상자를 엽니다.

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

- 프로젝트 빌드, 배포 및 실행을 위한 Python 키트를 선택합니다. 기본적으로 소스 디렉터리 내에 프로젝트에 대한 가상 환경이 생성됩니다. 글로벌 인터프리터를 사용하려면 Details 에서 키트의 Python과 이름이 같은 빌드 구성을 선택합니다.
- Next 또는 Continue 을 선택합니다.
- 프로젝트 설정을 검토하고 Finish (Windows 및 Linux의 경우) 또는 Done (macOS의 경우)를 선택하여 프로젝트를 만듭니다.
마법사가 다음 파일을 생성합니다:
pyproject.toml파이썬 프로젝트의 파일과 기타 구성이 나열된 파일.mywidget.py클래스에 대한 상용구 코드가 있는 파일.requirements.txt생성된 코드의 PySide 버전이 저장된 파일입니다. 이 파일을 사용하여 pip를 사용하여 필요한 PySide 버전을 설치할 수 있습니다.
프로젝트에 PySide6 설치하기
Edit 모드에서 Install 을 선택하여 프로젝트용 PySide6을 설정합니다.

Qt Widgets 임포트 추가
마법사는 QApplication 및 Qt Widgets 모듈에서 선택한 기본 클래스인 QWidget 에 액세스하기 위해 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는 명령줄에서 인수를 받을 수 있으므로 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.