2026-05-07 17:15:56 +03:00
|
|
|
|
"""
|
|
|
|
|
|
InstructionsDialog - диалог с инструкцией по использованию
|
|
|
|
|
|
"""
|
|
|
|
|
|
from PySide6.QtWidgets import (
|
|
|
|
|
|
QDialog, QVBoxLayout, QHBoxLayout, QLabel, QTextEdit,
|
|
|
|
|
|
QPushButton, QScrollArea
|
|
|
|
|
|
)
|
|
|
|
|
|
from PySide6.QtCore import Qt
|
|
|
|
|
|
from PySide6.QtGui import QFont
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class InstructionsDialog(QDialog):
|
|
|
|
|
|
"""Диалог с подробной инструкцией пользователя"""
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, parent):
|
|
|
|
|
|
super().__init__(parent)
|
|
|
|
|
|
|
|
|
|
|
|
self.setWindowTitle("Инструкция по использованию")
|
|
|
|
|
|
self.setMinimumSize(700, 500)
|
|
|
|
|
|
self.resize(750, 550)
|
|
|
|
|
|
|
|
|
|
|
|
self._create_ui()
|
|
|
|
|
|
|
|
|
|
|
|
def _create_ui(self):
|
|
|
|
|
|
"""Создаёт интерфейс диалога"""
|
|
|
|
|
|
layout = QVBoxLayout(self)
|
|
|
|
|
|
layout.setSpacing(10)
|
|
|
|
|
|
layout.setContentsMargins(15, 15, 15, 15)
|
|
|
|
|
|
|
|
|
|
|
|
# Заголовок
|
|
|
|
|
|
title_label = QLabel("Astro Session Watcher - Руководство пользователя")
|
|
|
|
|
|
title_font = QFont()
|
|
|
|
|
|
title_font.setPointSize(16)
|
|
|
|
|
|
title_font.setBold(True)
|
|
|
|
|
|
title_label.setFont(title_font)
|
|
|
|
|
|
title_label.setAlignment(Qt.AlignCenter)
|
|
|
|
|
|
layout.addWidget(title_label)
|
|
|
|
|
|
|
|
|
|
|
|
# Текст инструкции
|
|
|
|
|
|
text_edit = QTextEdit()
|
|
|
|
|
|
text_edit.setReadOnly(True)
|
|
|
|
|
|
text_edit.setFont(QFont("Consolas", 10))
|
|
|
|
|
|
|
|
|
|
|
|
instructions = """
|
|
|
|
|
|
======================= ASTRO SESSION WATCHER =======================
|
|
|
|
|
|
|
|
|
|
|
|
Приложение автоматически отслеживает появление новых фотографий в указанной папке,
|
|
|
|
|
|
сортирует их по объектам съемки и ведет подробный лог всего процесса.
|
|
|
|
|
|
|
|
|
|
|
|
📸 ДЛЯ ЧЕГО ЭТО НУЖНО?
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
Когда вы снимаете астрономические объекты через EOS Utility или аналогичное ПО,
|
|
|
|
|
|
все фотографии сохраняются в одну папку. Astro Session Watcher помогает:
|
|
|
|
|
|
|
|
|
|
|
|
• Автоматически распределять снимки по папкам объектов
|
|
|
|
|
|
• Вести лог каждой сессии
|
|
|
|
|
|
• Не пропустить ни одного кадра при смене объекта
|
|
|
|
|
|
• Хранить историю оборудования и небесных тел
|
|
|
|
|
|
|
|
|
|
|
|
🚀 КАК ЭТО РАБОТАЕТ?
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
1. Вы выбираете папку, куда камера сохраняет снимки
|
|
|
|
|
|
2. Приложение создает папку сессии: "AstroSession_ГГГГ-ММ-ДД"
|
|
|
|
|
|
3. Каждый объект съемки получает свою подпапку внутри папки сессии
|
|
|
|
|
|
4. Когда вы меняете объект (нажимаете "Новая цель"), все накопленные
|
|
|
|
|
|
в папке наблюдения файлы автоматически ПЕРЕМЕЩАЮТСЯ в папку предыдущего объекта
|
|
|
|
|
|
5. При завершении сессии оставшиеся файлы также перемещаются в папку последнего объекта
|
|
|
|
|
|
|
|
|
|
|
|
📝 ПОШАГОВАЯ ИНСТРУКЦИЯ
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
█ 1. ПЕРВЫЙ ЗАПУСК (НАСТРОЙКА)
|
|
|
|
|
|
───────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
|
|
|
|
|
|
• Откройте меню "Файл" → "Оборудование" и добавьте ваши камеры и объективы
|
|
|
|
|
|
• Откройте меню "Файл" → "Небесные тела" и добавьте объекты для наблюдения
|
|
|
|
|
|
• Все данные сохраняются автоматически в файлах настроек
|
|
|
|
|
|
|
|
|
|
|
|
█ 2. ЗАПУСК СЕССИИ
|
|
|
|
|
|
───────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
|
|
|
|
|
|
1. Нажмите "Обзор" и выберите папку, куда камера сохраняет снимки
|
|
|
|
|
|
2. Выберите камеру и объектив из выпадающих списков
|
|
|
|
|
|
3. Введите название цели (или выберите из списка небесных тел)
|
|
|
|
|
|
4. Нажмите ▶ "Начать отслеживание"
|
|
|
|
|
|
|
|
|
|
|
|
✅ После запуска:
|
|
|
|
|
|
• Статус изменится на "● ON AIR" с мигающим красным текстом
|
|
|
|
|
|
• Кнопка "Новая цель" начнет мигать красным контуром
|
|
|
|
|
|
• В папке наблюдения создастся папка "AstroSession_дата"
|
|
|
|
|
|
• Внутри - папка с вашей первой целью
|
|
|
|
|
|
|
|
|
|
|
|
█ 3. СМЕНА ОБЪЕКТА ВО ВРЕМЯ СЕССИИ
|
|
|
|
|
|
───────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
|
|
|
|
|
|
Когда вы заканчиваете снимать один объект и переходите к другому:
|
|
|
|
|
|
|
|
|
|
|
|
1. Нажмите кнопку "Новая цель" (или Ctrl+Shift+N)
|
|
|
|
|
|
2. Введите название нового объекта
|
|
|
|
|
|
3. Приложение автоматически:
|
|
|
|
|
|
• Переместит все накопленные файлы в папку предыдущего объекта
|
|
|
|
|
|
• Создаст новую папку для следующего объекта
|
|
|
|
|
|
• Сбросит счетчик файлов
|
|
|
|
|
|
• Продолжит отслеживание
|
|
|
|
|
|
|
|
|
|
|
|
💡 ВАЖНО: Если перед сменой объекта в папке наблюдения уже есть файлы,
|
|
|
|
|
|
они НЕ ПОТЕРЯЮТСЯ - все будут перемещены в папку текущего объекта!
|
|
|
|
|
|
|
|
|
|
|
|
█ 4. ЗАВЕРШЕНИЕ СЕССИИ
|
|
|
|
|
|
───────────────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
|
|
|
|
|
|
1. Нажмите ■ "Остановить" (или Ctrl+X)
|
|
|
|
|
|
2. Приложение:
|
|
|
|
|
|
• Переместит все оставшиеся файлы в папку последнего объекта
|
|
|
|
|
|
• Запишет итоговый лог сессии
|
|
|
|
|
|
• Покажет диалог с предложением открыть папку сессии
|
|
|
|
|
|
• Восстановит интерфейс для новой сессии
|
|
|
|
|
|
|
|
|
|
|
|
⌨️ ГОРЯЧИЕ КЛАВИШИ
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
Ctrl + O → Выбрать папку наблюдения
|
|
|
|
|
|
Ctrl + E → Управление оборудованием
|
|
|
|
|
|
Ctrl + B → Управление небесными телами
|
|
|
|
|
|
Ctrl + S → Начать сессию
|
|
|
|
|
|
Ctrl + X → Остановить сессию
|
|
|
|
|
|
Ctrl + F → Открыть папку текущей сессии
|
|
|
|
|
|
Ctrl + Shift+N → Создать новый объект
|
|
|
|
|
|
F1 → О программе
|
|
|
|
|
|
F2 → Эта инструкция
|
|
|
|
|
|
|
|
|
|
|
|
🔧 ФАЙЛЫ НАСТРОЕК
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
📄 astro_settings.json ← камеры, объективы, последняя папка
|
|
|
|
|
|
📄 celestial_bodies.json ← список небесных тел
|
|
|
|
|
|
|
|
|
|
|
|
Все файлы хранятся в папке с программой. Вы можете редактировать их вручную.
|
|
|
|
|
|
|
|
|
|
|
|
📧 ТЕХНИЧЕСКАЯ ПОДДЕРЖКА
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
Разработчик: Vic Sergeev
|
|
|
|
|
|
Версия: 0.3.0-alpha
|
|
|
|
|
|
|
|
|
|
|
|
При обнаружении ошибок или для предложений по улучшению:
|
|
|
|
|
|
• Сообщите разработчику
|
|
|
|
|
|
• Приложите файлы логов (SessionLog.txt, ObjectLog.txt)
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
text_edit.setText(instructions)
|
|
|
|
|
|
layout.addWidget(text_edit)
|
|
|
|
|
|
|
|
|
|
|
|
# Кнопка закрытия
|
|
|
|
|
|
close_layout = QHBoxLayout()
|
|
|
|
|
|
close_layout.addStretch()
|
|
|
|
|
|
|
|
|
|
|
|
close_btn = QPushButton("Закрыть")
|
|
|
|
|
|
close_btn.clicked.connect(self.accept)
|
|
|
|
|
|
close_layout.addWidget(close_btn)
|
|
|
|
|
|
|
|
|
|
|
|
layout.addLayout(close_layout)
|