diff --git a/gui/main_window_qt.py b/gui/main_window_qt.py index f2bcd1c..88cad51 100644 --- a/gui/main_window_qt.py +++ b/gui/main_window_qt.py @@ -101,7 +101,15 @@ class MainWindow(QMainWindow): self.resize(900, 700) # Set application icon - icon_path = Path(__file__).parent.parent / "LocalTranscription.png" + # In PyInstaller frozen executables, use _MEIPASS for bundled files + import sys + if getattr(sys, 'frozen', False): + # Running in PyInstaller bundle + icon_path = Path(sys._MEIPASS) / "LocalTranscription.png" + else: + # Running in normal Python + icon_path = Path(__file__).parent.parent / "LocalTranscription.png" + if icon_path.exists(): from PySide6.QtGui import QIcon self.setWindowIcon(QIcon(str(icon_path))) diff --git a/local-transcription.spec b/local-transcription.spec index ac593c8..dcfdff1 100644 --- a/local-transcription.spec +++ b/local-transcription.spec @@ -36,6 +36,7 @@ except ImportError: binaries = [] datas = [ ('config/default_config.yaml', 'config'), + ('LocalTranscription.png', '.'), # Include icon for runtime window icon (vad_assets_path, 'faster_whisper/assets'), # Include VAD model ] + pvporcupine_data_files # Include pvporcupine resources hiddenimports = [ diff --git a/main.py b/main.py index ffedd40..a97e78e 100644 --- a/main.py +++ b/main.py @@ -89,7 +89,14 @@ def main(): app.setOrganizationName("LocalTranscription") # Set application icon - icon_path = project_root / "LocalTranscription.png" + # In PyInstaller frozen executables, use _MEIPASS for bundled files + if getattr(sys, 'frozen', False): + # Running in PyInstaller bundle + icon_path = Path(sys._MEIPASS) / "LocalTranscription.png" + else: + # Running in normal Python + icon_path = project_root / "LocalTranscription.png" + if icon_path.exists(): from PySide6.QtGui import QIcon app.setWindowIcon(QIcon(str(icon_path)))