Desktop: roadmap
Tkinter и PySide6 в контексте событийной архитектуры, фоновых операций, доступности и поставки приложения.
Когда Tkinter достаточно
Tkinter из главы 16 и последующих проектов остаётся стандартным интерфейсом Python к Tcl/Tk. Он пригоден для обучения событийной модели, внутренних инструментов и приложений с умеренной сложностью интерфейса. Для богатых интерфейсов, сложной модели представления и широкой экосистемы компонентов можно рассматривать PySide6, официальные привязки Python для Qt.
| Инструмент | Подходит | Учесть |
|---|---|---|
| Tkinter | Небольшие кроссплатформенные GUI, учебные и внутренние инструменты. | Архитектуру, фоновые задачи, packaging и platform testing всё равно проектирует разработчик. |
| PySide6 / Qt | Более богатые widgets, model/view, QML и крупные desktop-интерфейсы. | Новая объектная модель, event loop, лицензирование компонентов и более сложная поставка. |
Архитектура раньше дизайна окон
План развития desktop-разработчика
- Событийная модель: event loop, callbacks, состояние формы и запрет блокирующей работы в UI thread.
- Композиция интерфейса: layout, widgets, фокус, клавиатурная навигация, accessibility и локализация.
- Архитектура: отделение domain logic, команды, модели представления и адаптеры ресурсов.
- Фоновые операции: cancellation, progress, errors и безопасная передача результата в UI.
- Данные: настройки, миграции локальной схемы, backup и восстановление.
- Поставка: сборка под целевые ОС, зависимости, иконки, installer, обновление и тест на чистой машине.
Проект для проверки направления
Соберите локальный каталог заметок или файлов с поиском. Domain layer должен тестироваться без запуска окна. Добавьте импорт и экспорт, отменяемую долгую операцию, понятное сообщение об ошибке и сборку хотя бы для одной целевой ОС. Отдельно проверьте управление с клавиатуры и ширину окна на небольшом экране.