강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hkh51617738
hkh51617738

câu hỏi đã được viết

[Cấp độ 1] Lập trình Python sử dụng Qt: Giới thiệu

Triển khai ví dụ sử dụng công cụ Qt Designer.

exe 배포 시 .ui 파일 처리하는 권장하는 방법이 있나요?

Viết

·

278

1

안녕하세요

.ui 파일을 uic를 통해 .py로 변환한 후 소스코드에 포함하여

exe 파일로 배포하는 것과

.ui 파일을 pyinstaller의 --add-data 옵션을 사용하여 .ui 파일을 포함하여 exe 파일로 배포하는 것의 차이점과

어떤 방법을 권장하시는지 궁금합니다.

pythonguiqtqmlpyside6

Câu trả lời 1

0

qtdev님의 프로필 이미지
qtdev
Người chia sẻ kiến thức

안녕하세요.

PySide6 프로젝트에서 .ui 파일을 배포하는 방식에 따라 두 가지 접근 방식을 비교해 보겠습니다.


1. uic를 통해 .ui 파일을 .py로 변환 후 포함하여 배포

장점

  • 단일 코드 파일: .ui 파일이 .py 파일로 변환되기 때문에 별도의 .ui 파일을 관리할 필요가 없습니다.

  • 성능: 런타임에 .ui 파일을 읽고 파싱하는 작업이 생략되므로 약간의 성능 이점이 있습니다.

  • 코드 일관성: UI 구성 요소를 Python 코드로 변환하면 IDE의 코드 탐색 및 자동 완성 기능을 사용할 수 있어 개발 편의성이 증가합니다.

단점

  • 변경 시 번거로움: .ui 파일을 수정할 경우, 다시 uic를 사용해 .py로 변환해야 하며, 이는 반복 작업을 초래할 수 있습니다.

  • 가독성 저하: 변환된 .py 파일은 사람이 읽기 어렵고 유지보수 시 불편할 수 있습니다.

  • 소스 코드 확장성 제한: .ui 파일을 Python 코드로 변환하면 디자인이 코드로 하드코딩되어, 나중에 .ui 파일 기반으로 디자인을 변경하려면 추가 작업이 필요합니다.


2. PyInstaller의 --add-data 옵션을 사용해 .ui 파일을 포함하여 배포

장점

  • 디자인 파일 유지: .ui 파일을 그대로 포함하므로, UI 수정이 필요할 경우 .ui 파일만 수정하면 됩니다. 이로 인해 디자인 변경이 빠르고 편리합니다.

  • 분리된 코드와 디자인: UI 파일과 Python 코드가 명확히 분리되므로, 유지보수성과 협업 효율성이 높아집니다.

  • 변환 과정 생략: .ui 파일을 변환하지 않아도 되므로 반복 작업이 줄어듭니다.

단점

  • 런타임 파일 로드: .ui 파일은 런타임에 읽고 파싱해야 하므로, 배포 후 처음 UI를 로드할 때 약간의 지연이 있을 수 있습니다.

  • 추가 파일 관리: .ui 파일을 포함하는 방식이므로 PyInstaller에 포함시키기 위한 경로 설정이나 관리가 필요합니다.


권장 방법

상황에 따른 선택

  1. 프로젝트가 단순하고 변경 가능성이 적은 경우:

    • uic를 통해 .ui 파일을 .py로 변환하여 사용하는 것이 적합합니다.

    • 이유: 실행 속도와 단일 파일 관리 측면에서 유리하며, 초기 개발 후 큰 변경이 없는 경우 효율적입니다.

  2. 프로젝트가 복잡하고 UI 변경이 자주 발생하거나 디자이너와 협업이 필요한 경우:

    • PyInstaller의 --add-data 옵션을 사용하여 .ui 파일을 포함하는 방식을 추천합니다.

    • 이유: 디자인과 로직이 분리되어 유지보수성과 확장성이 뛰어나며, 수정이 발생해도 빠르게 대응할 수 있습니다.


개인적인 추천

대부분의 경우, --add-data 옵션을 활용한 .ui 파일 배포 방식을 권장합니다. 이유는 다음과 같습니다:

  • Qt Designer로 UI를 변경할 수 있는 자유를 유지할 수 있습니다.

  • 유지보수가 용이하며, 파일 구조가 명확합니다.

  • UI를 .ui 파일로 유지하면 협업 시 디자이너와의 역할 분담이 쉬워집니다.

다만, 특정 상황(예: 단순 도구 제작, 변경 가능성 없음 등)에서는 변환 방식을 고려해볼 수도 있습니다. 장기적인 확장성과 유지보수성을 중요시한다면 .ui 파일 배포 방식을 선택하세요.

Hình ảnh hồ sơ của hkh51617738
hkh51617738

câu hỏi đã được viết

Đặt câu hỏi