Qt for Python 시작 파일 설정

1. Qt for Python 초기 설정
더보기
1. 현재 상황:
- qt for python 프로젝트를 실행하면
→ main.py가 아니라 widget.py가 시작 파일로 설정되어 있음 - 구조와 유지보수, 교육 측면에서는 main.py를 시작 파일로 두는 쪽이 더 합당합니다.
2. 구조상 아쉬운 점
- 역할 분리(SRP)” 측면
- Widget 클래스는 UI(화면) 를 정의하는 역할
- QApplication 생성, 프로그램 시작/종료 관리 등은 앱 실행부 역할
- 이 둘을 한 파일에 섞어 놓으면:
- 작은 프로젝트에서는 괜찮지만
- 조금만 커져도 “UI + 실행부 + 로직” 이 한 파일에 엉키는 구조가 되기 쉽습니다.
- 확장/리팩터링 시 제약
- 나중에 QMainWindow로 바꾸거나
- 여러 화면, 여러 위젯, 여러 탭, 서브 윈도우들을 만들고 싶을 때
→ widget.py가 실행 파일이면 구조를 다시 뜯어고치는 일이 생기기 쉽습니다.
3. 권장 구조
- 권장 패턴: main.py + widget.py 역할 분리
# widget.py
from PySide6.QtWidgets import QWidget, QVBoxLayout, QPushButton, QLabel
class Widget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("QTabWidget 데모")
label = QLabel("메인 위젯입니다.")
btn = QPushButton("클릭")
layout = QVBoxLayout(self)
layout.addWidget(label)
layout.addWidget(btn)
- 여기에는 QApplication, app.exec() 같은 실행 코드 없음
- 그냥 “화면이 어떤 모양인지”만 정의
# main.py
import sys
from PySide6.QtWidgets import QApplication
from widget import Widget # 우리가 만든 위젯 불러오기
def main():
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec())
if __name__ == "__main__":
main()
이렇게 하면:
- “프로그램의 시작은 항상 main.py” 라는 규칙이 생깁니다.
- UI 관련 코드는 widget.py로 분리 → 구조가 훨씬 깔끔
- 나중에:
- main.py에서 인자 처리, 설정 파일 로드, 로깅 초기화 등
- “앱 전체”에 관련된 초기화 코드를 넣기 쉬움
2. Qt for Python 실행 파일 설정 방법

