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

Qt for Python 애플리케이션 제작에 대한 더 많은 예제는 Qt for Python 예제 및 튜토리얼을 참조하십시오.
빈 프로젝트 만들기
메인 QML 파일이 포함된 Qt for Python 애플리케이션을 만들려면:
- File > New Project 로 이동합니다.
- 다음 항목을 선택합니다 Application (Qt for Python) > Qt Quick Application - Empty > Choose 을 선택하여 ‘ Project Location ’ 대화 상자를 엽니다.

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

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

- 프로젝트를 빌드, 배포 및 실행할 Python 키트를 선택합니다. 기본적으로 소스 디렉터리 내에 프로젝트용 가상 환경이 생성됩니다. 전역 인터프리터를 사용하려면 ‘ Details ’에서 키트의 Python과 동일한 이름을 가진 빌드 구성을 선택하십시오.
- 프로젝트 설정을 검토한 후, Windows 및 Linux에서는 [ Finish ](https://www.python.org/doc/python/project-creation-wizard/), macOS에서는 [ Done ](https://www.python.org/doc/python/project-creation-wizard/macos)를 선택하여 프로젝트를 생성합니다.
마법사는 프로젝트 이름을 따서 명명된 하위 디렉터리를 생성하여 동일한 이름의 QML 모듈을 만들고, 다음 파일들을 생성합니다:
pyproject.toml, 여기에는 Python 프로젝트의 파일 목록과 기타 구성 정보가 나열되어 있습니다.main.py, 여기에는 일부 기본 코드가 포함되어 있습니다.<ProjectName>/Main.qml, Qt Quick 컨트롤을 임포트하는 파일입니다.<ProjectName>/qmldir, QML 모듈을 선언하는 파일입니다.requirements.txt, 생성된 코드의 PySide 버전을 저장하는 파일입니다. 이 파일을 사용하여 pip를 통해 필요한 PySide 버전을 설치할 수 있습니다.
프로젝트에 PySide6 설치
Edit 모드에서 ‘ Install ’를 선택하여 프로젝트에 PySide6을 설정합니다.

Qt Quick 임포트 추가
마법사는 QGuiApplication 및 QQmlApplicationEngine 에 접근할 수 있도록 main.py 소스 파일에 다음 임포트를 추가합니다:
import sys from pathlib import Path from PySide6.QtGui import QGuiApplication from PySide6.QtQml import QQmlApplicationEngine
main 함수 추가
또한 마법사는 main 함수를 추가하며, 이 함수 내에서 QGuiApplication 인스턴스를 생성하고 시스템 인수를 QGuiApplication 객체에 전달합니다:
if __name__ == "__main__": app = QGuiApplication(sys.argv) ...
QML 파일 불러오기
main 클래스의 다음 코드 줄은 QQmlApplicationEngine 인스턴스를 생성하고 생성된 QML 모듈을 엔진 객체에 로드합니다:
... engine = QQmlApplicationEngine() engine.addImportPath(Path(__file__).parent) engine.loadFromModule("ProjectName", "Main") ...
마지막으로, 마법사는 파일이 성공적으로 로드되었는지 확인하는 코드를 추가합니다. 파일 로드에 실패하면 애플리케이션은 오류 코드와 함께 종료됩니다. 로드가 성공하면, 마법사는 app.exec() 메서드를 호출하여 Qt 메인 루프로 진입하고 Qt 코드 실행을 시작합니다:
... if not engine.rootObjects(): sys.exit(-1) sys.exit(app.exec()) ...
UI 디자인
Edit 모드로 Main.qml 파일을 열어 Qt Quick UI를 디자인합니다.
임포트 추가
Qt Quick Controls 및 Layouts에 대한 임포트를 추가합니다:
import QtQuick import QtQuick.Window import QtQuick.Controls import QtQuick.Layouts
속성 및 함수 추가
마법사가 메인 창을 추가합니다:
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
}표시되는 텍스트의 언어를 무작위로 선택하는 속성과 함수를 추가합니다:
...
readonly property list<string> texts: ["Hallo Welt", "Hei maailma",
"Hola Mundo", "Привет мир"]
function setText() {
var i = Math.round(Math.random() * 3)
text.text = texts[i]
}추가 Qt Quick Controls
UI를 디자인하기 위해 ` ColumnLayout ` 유형 내에 ` Text ` 및 `Button ` QML 유형을 추가합니다:
ColumnLayout {
anchors.fill: parent
Text {
id: text
text: "Hello World"
Layout.alignment: Qt.AlignHCenter
}
Button {
text: "Click me"
Layout.alignment: Qt.AlignHCenter
onClicked: setText()
}
}Qt Quick Designer 또는 Qt Design Studio 를 사용하여 Qt Quick UI를 디자인할 수도 있습니다.
애플리케이션 실행
(Run)를 선택하여 애플리케이션을 실행합니다.
‘자습서: Qt Widgets 및 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.