반응형
문제점
pyinstaller의 옵션으로 -w -F --icon='icon'을 넣어서 실행파일을 생성하면 다른 컴퓨터나 아이콘의 경로가 바뀌었을 때 아이콘이 표시되지 않는 문제점이 나타났다.
해결 방법
아이콘 파일의 상대경로를 pyinstaller로 포함시켜도 찾아낼 수 있게 변환시켜주는 함수를 생성한다
이 함수를 이용해서 경로를 얻고 pyQt의 setWindowIcon 메서드를 사용해 아이콘을 적용한다.
아이콘을 적용할 때에는 QtGui에 QIcon을 사용해 적용한다.
pyinstaller로 포함시켜도 찾아낼 수 있게 변환시켜주는 함수
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
QIcon 생성
import sys
import os.path
from PySide6.QtGui import QIcon
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
""" 절대경로로 QIcon 가져오기 """
def getQIcon(imageIconPath):
return QIcon(resource_path(imageIconPath))
적용
#아이콘 설정
icon = iconResource.getQIcon('이미지 경로')
self.setWindowIcon(icon)
pyinstaller 명령어
pyinstaller -w -F -i=["아이콘.ico"] --add-data=["아이콘 파일 위치;./아이콘이 저장되어 있는 폴더"] [exe파일로 만들 파일명.py] -n [실행파일명]
출처
https://pgh268400.tistory.com/378
[PyQT] pyinstaller로 윈도우 아이콘, UI, 프로그램 아이콘 전부 exe에 포함시키기
PyQT와 Qt Designer로 아이콘 및 UI를 다루는건 디버깅을 할땐 아무 문제가 되지 않습니다만 pyinstaller로 exe로 패키징 하는 과정에선 문제가 발생할 수 있습니다. UI와 아이콘 파일의 위치를 못찾는것
pgh268400.tistory.com
반응형
'Python' 카테고리의 다른 글
파이썬 playsound (0) | 2023.06.23 |
---|---|
자료형 그대로 파일에 저장하기 (0) | 2023.06.07 |
사용자 폴더 위치 (0) | 2023.06.01 |
PySide6로 GUI 구성하기 (0) | 2023.05.18 |
Python unittest 사용하기 (0) | 2023.05.16 |