Просмотрщик файлов MHT/MHTML с поддержкой слайдов, изображений и комментариев.
MHT Viewer — это десктопное приложение на Python с графическим интерфейсом для просмотра файлов формата MHT (MHTML). Приложение позволяет:
- Просматривать слайды из MHT файлов
- Отображать изображения с поддержкой зума и панорамирования
- Просматривать комментарии к слайдам
- Навигироваться между слайдами
- 📄 Парсинг MHT/MHTML файлов
- 🖼️ Отображение изображений с поддержкой зума колесом мыши
- 🖱️ Панорамирование изображений перетаскиванием мыши
- 📝 Просмотр комментариев к слайдам
- ⌨️ Навигация между слайдами (вперед/назад)
- 🎨 Современный интерфейс на базе Tkinter
- Python 3.7+
- Tkinter (обычно входит в стандартную поставку Python)
- Pillow (PIL) — для отображения изображений
- BeautifulSoup4 — для парсинга HTML
- Клонируйте репозиторий или скачайте проект:
git clone <repository-url>
cd MHTViewer- Установите зависимости:
pip install pillow beautifulsoup4Или используйте файл requirements.txt (если создан):
pip install -r requirements.txtЗапустите приложение:
python main.pyИли напрямую:
python -m app.viewer_app- Меню "Файл" → "Открыть..." — выбрать MHT файл для просмотра
- Кнопки навигации — переключение между слайдами
- Колесо мыши — зум изображения
- ЛКМ + перетаскивание — панорамирование изображения
Проект организован по модульному принципу с применением SOLID:
MHTViewer/
├── main.py # Точка входа
├── app/ # Главное приложение
│ ├── __init__.py
│ └── viewer_app.py # Основной класс приложения
├── core/ # Бизнес-логика
│ ├── __init__.py
│ ├── slide.py # Модель данных Slide
│ ├── slide_builder.py # Построение слайдов из MHT
│ └── slide_manager.py # Управление навигацией
├── ui/ # Компоненты интерфейса
│ ├── __init__.py
│ ├── menu.py # Меню приложения
│ ├── toolbar.py # Панель инструментов
│ ├── slide_viewer.py # Просмотр слайдов с зумом/панорамированием
│ └── comment_box.py # Компонент комментариев
├── image/ # Обработка изображений
│ ├── __init__.py
│ ├── image_handler.py # Работа с PIL/Pillow
│ └── zoom_controller.py # Контроллер зума и панорамирования
├── parsers/ # Парсеры
│ ├── __init__.py
│ └── mht_parser.py # Парсер MHT/MHTML файлов
└── utils/ # Утилиты
├── __init__.py
└── constants.py # Константы и перечисления
Проект следует принципам SOLID:
- Single Responsibility Principle (SRP) — каждый класс отвечает за одну задачу
- Open/Closed Principle (OCP) — компоненты расширяемы без изменения существующего кода
- Liskov Substitution Principle (LSP) — компоненты взаимозаменяемы
- Interface Segregation Principle (ISP) — интерфейсы разделены по функциональности
- Dependency Inversion Principle (DIP) — зависимости через абстракции
python main.py- app/ — координация работы всех компонентов
- core/ — бизнес-логика и модели данных
- ui/ — компоненты пользовательского интерфейса
- image/ — обработка и отображение изображений
- parsers/ — парсинг файлов
- utils/ — вспомогательные утилиты
[Укажите лицензию проекта]
[Укажите автора проекта]
При возникновении проблем создайте issue в репозитории проекта.