4.3 예제 코드 분석하기 (3)

1. 분석할 소스코드 확인하기
3.1 파이참에서 PySide6 실행하기
1. 파이참에서 프로젝트 생성하기: PySide6 테스트를 위한 프로젝트 생성하기더보기파이참에서 프로젝트 생성하기 파이참에서 프로젝트 생성하기1. 일반 프로젝트 생성하기더보기 2. 커스텀 가상
basiclike.tistory.com
@ Pycham 에서 실행했던 PySide6 예제 소스코드를 확인합니다.
3.4 UI 디자이너 기반, GUI 개발 이해
1. GUI 있는 애플리케이션 개발 방식더보기A. 소스 코드 기반Source Code .py 파일 ▶ UI 구현위젯 생성, 레이아웃, 시그널/슬롯 연결, 로직까지 전부 Python/C#/C++ 코드로만 작성 B. UI 디자이너(WYSIWYG) 기반
basiclike.tistory.com
@ (1) UI Designer ▶ (2) HTML, XAML, 태그 (.ui 파일) ▶ (3) Source Code (.py 파일) ▶ (4) UI 구현
설명을 위해 사용했던 PySide6 예제 소스코드를 확인합니다.
3.5 Qt에서 PySide6 실행하기
1. Python 설치 : 파이썬 3.11 버전을 사용합니다 (2025.Nov.27)더보기Qt, 파이썬 호환성 (링크) - (권장: 3.10 또는 3.11) 파이썬 설치 파이썬 설치" data-og-description="1. Python 설치 (2025.Nov.20 권장: 3.10 또는 3.11)
basiclike.tistory.com
@ Qt 에서 실행했던 PySide6 예제 소스코드를 확인합니다.
2. 사용한 소스코드 비교, 분석하기
4. 예제 코드
# This Python file uses the following encoding: utf-8
import sys
from PySide6.QtWidgets import QApplication, QWidget
# Important:
# You need to run the following command to generate the ui_form.py file
# pyside6-uic form.ui -o ui_form.py, or
# pyside2-uic form.ui -o ui_form.py
from ui_form import Ui_Widget
class Widget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.ui = Ui_Widget()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QApplication(sys.argv)
widget = Widget()
widget.show()
sys.exit(app.exec())
Qt에서 Pyside6 템플릿을 실행하면 최초 구현되어 있는 소스코드입니다.
5. 예제 코드 분석하기
# This Python file uses the following encoding: utf-8
# [1] 이 파이썬 파일이 UTF-8 인코딩을 사용한다고 명시
# - 한글, 일본어 등 유니코드 문자를 안전하게 사용하기 위함
# Important:
# You need to run the following command to generate the ui_form.py file
# pyside6-uic form.ui -o ui_form.py, or
# pyside2-uic form.ui -o ui_form.py
# [4] Qt Designer에서 만든 form.ui(디자인 파일)를
# pyside6-uic 명령으로 파이썬 코드(ui_form.py)로 변환해야 한다는 안내
# - form.ui → ui_form.py (자동 생성 코드)
from ui_form import Ui_Widget
# [5] 위에서 생성된 ui_form.py 파일 안에 있는 Ui_Widget 클래스를 가져옴
# - Ui_Widget : Qt Designer에서 만든 위젯 배치를 파이썬 코드로 표현한 클래스
# (버튼, 레이블, 레이아웃 등 배치정보가 들어 있음)
class Widget(QWidget):
# [6] Widget 클래스 정의
# - QWidget을 상속받아 실제로 화면에 표시될 사용자 정의 위젯 클래스
def __init__(self, parent=None):
# [7] 생성자(constructor)
# - parent: 부모 위젯 (기본값 None이면 최상위 창이 됨)
super().__init__(parent)
# [8] 부모 클래스(QWidget)의 생성자를 호출하여
# QWidget이 가진 초기화 작업(윈도우 핸들 생성 등)을 수행
self.ui = Ui_Widget()
# [9] Ui_Widget 클래스의 인스턴스를 만들고
# 이를 self.ui 라는 멤버 변수에 저장
# - 이 객체 안에 버튼, 레이블 등 위젯 정의가 들어 있음
self.ui.setupUi(self)
# [10] Ui_Widget에 정의된 setupUi() 메서드를 호출
# - 인자로 self(=현재 Widget 객체)를 넘겨서
# 이 Widget을 기준으로 각종 버튼/레이블/레이아웃을 배치하도록 함
# - 결과적으로: Qt Designer에서 만든 UI가 이 Widget 위에 올라가게 됨
if __name__ == "__main__": 블록 안에서는
- QApplication을 생성하고
- Widget 인스턴스를 만들고
- show()로 띄운 뒤
- app.exec()으로 이벤트 루프를 돌리면서 사용자의 입력(클릭/닫기 등)을 처리하다가,
- 창이 닫히면 sys.exit()로 종료 코드를 운영체제에 넘기며 프로그램을 종료합니다.
6. 프로그램 시작시 동작 순서
Python 프로그램 시작
예를 들어, 터미널에서 이렇게 실행했다고 해봅시다:
그러면 파이썬은 다음 순서로 동작합니다:
① myapp.py 파일을 읽음
② __name__ 이라는 변수를 자동으로 생성
③ 이 파일을 “시작 파일”로 간주하고
④ myapp.py의 코드를 위에서부터 차례대로 실행
⑤ if __name__ == "__main__": 조건이 True → 블록 실행
Qt Designer로 만든 UI(form.ui) → ui_form.py → Widget에 붙이기 → 실행 및 표시


