feat: иконка на окне программы (заголовок/панель задач) + в ресурсах exe
This commit is contained in:
@@ -13,6 +13,8 @@ datas = [
|
||||
('dokogen/dictionaries', 'dokogen/dictionaries'),
|
||||
# Пустой опросник 152-ФЗ (для «Справка → Пустой опросник»)
|
||||
('dokogen/data', 'dokogen/data'),
|
||||
# Иконка приложения (для окна программы в exe)
|
||||
('dokogen/icon.ico', 'dokogen'),
|
||||
]
|
||||
|
||||
# ---------- Словари pymorphy3 (обязательно!) ----------
|
||||
|
||||
@@ -34,6 +34,27 @@ class DokoGenApp:
|
||||
root.title("ДоКоГеНеРаТоР — 152-ФЗ (Персональные данные)")
|
||||
root.geometry("1200x800")
|
||||
root.minsize(900, 600)
|
||||
self._set_app_icon()
|
||||
|
||||
def _set_app_icon(self):
|
||||
"""Устанавливает иконку приложения на окно (заголовок, панель задач).
|
||||
|
||||
Работает и из исходников, и из exe (frozen):
|
||||
- исходники: dokogen/icon.ico рядом с модулем
|
||||
- exe: dokogen/icon.ico из _MEIPASS (ресурсы PyInstaller)
|
||||
"""
|
||||
try:
|
||||
if getattr(sys, 'frozen', False):
|
||||
base = getattr(sys, '_MEIPASS', os.path.dirname(sys.executable))
|
||||
ico = os.path.join(base, 'dokogen', 'icon.ico')
|
||||
if not os.path.exists(ico):
|
||||
ico = os.path.join(os.path.dirname(sys.executable), 'icon.ico')
|
||||
else:
|
||||
ico = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'icon.ico')
|
||||
if os.path.exists(ico):
|
||||
self.root.iconbitmap(ico)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
self.model = Company()
|
||||
self.current_file: Optional[str] = None
|
||||
|
||||
Reference in New Issue
Block a user