|
17 | 17 | - Added a "Batches" title above the table area at the bottom of the page. |
18 | 18 | """ |
19 | 19 |
|
| 20 | +import sys, os |
20 | 21 | import tkinter as tk |
| 22 | +from pathlib import Path |
21 | 23 | from tkinter import ttk |
22 | 24 | import webbrowser |
23 | 25 |
|
@@ -74,6 +76,11 @@ def _open_help_docs(): |
74 | 76 | def _open_report_bug(): |
75 | 77 | webbrowser.open("https://github.com/tmaier-kettering/CodebookAI/issues/new") |
76 | 78 |
|
| 79 | +def asset_path(*parts) -> str: |
| 80 | + # When frozen by PyInstaller, data are unpacked under sys._MEIPASS |
| 81 | + base = Path(getattr(sys, "_MEIPASS", Path(__file__).resolve().parent)) |
| 82 | + return str(base.joinpath("assets", *parts)) |
| 83 | + |
77 | 84 |
|
78 | 85 | def build_ui(root: tk.Tk) -> None: |
79 | 86 | """ |
@@ -104,9 +111,9 @@ def build_ui(root: tk.Tk) -> None: |
104 | 111 |
|
105 | 112 | # Load and keep a reference to avoid garbage collection |
106 | 113 | # (PNG with transparency is fine with tk.PhotoImage) |
107 | | - orig = tk.PhotoImage(file="assets/Banner_Narrow_trans.png") |
108 | | - scale_factor = 3 # make bigger number to shrink more |
109 | | - root.banner_img = orig.subsample(scale_factor, scale_factor) |
| 114 | + banner_img = tk.PhotoImage(file=asset_path("Banner_Narrow_trans.png")) |
| 115 | + scale_factor = 3 |
| 116 | + root.banner_img = banner_img.subsample(scale_factor, scale_factor) # keep a ref on root |
110 | 117 |
|
111 | 118 | banner_lbl = ttk.Label(header, image=root.banner_img, anchor="center") |
112 | 119 | banner_lbl.grid(row=0, column=0, sticky="n", padx=0, pady=0) |
|
0 commit comments