реклама
Бургер менюБургер меню

Нави Тулаг – От датчика до интерфейса. Практическое руководство по созданию инженерных десктоп приложений на Python и web-технологиях (страница 3)

18

2.1. Классический путь: Tkinter и PyQt

Когда Python-разработчик слышит «нужен интерфейс», первая мысль — Tkinter. Он встроен в Python, не требует установки и работает «из коробки».

Пример на Tkinter:

Плюсы традиционных GUI:

✅ Нативность: Приложение выглядит как часть ОС (особенно PyQt).

✅ Лёгкость: Tkinter не тянет за собой браузер и весит килобайты.

✅ Отсутствие сервера: Не нужно поднимать локальный веб-сервер, всё работает в одном процессе.

Минусы для инженера:

❌ Визуализация: Построить красивый интерактивный график в Tkinter сложно (нужен matplotlib, который тяжёлый и не всегда интерактивный).

❌ Вёрстка: Выравнивание элементов («сетка») в Tkinter часто превращается в боль. Сделать адаптивный интерфейс под разные экраны трудно.

❌ Порог входа PyQt: PyQt мощнее, но у него сложный синтаксис (сигналы/слоты), и он требует изучения Qt-фреймворка.

🛠️ Инженерный вердикт: Tkinter подойдёт для простой «кнопки вкл/выкл». Но если нужно отображать графики в реальном времени, логи и дашборды — вы потратите больше времени на борьбу с интерфейсом, чем на логику работы с железом.

2.2. Современный путь: Веб-обёртки (Hybrid Apps)

Идея проста: логика на Python, интерфейс в браузере.

Вы пишете backend на Python (работа с COM-портами, расчёты), а frontend — на HTML/CSS/JS (кнопки, графики Chart.js). Специальная оболочка (Eel, Electron) связывает их.

Пример архитектуры Eel:

Плюсы веб-обёрток:

✅ Визуализация: Библиотеки вроде Chart.js или Plotly позволяют строить потрясающие графики несколькими строками кода.

✅ Вёрстка: CSS даёт полный контроль над дизайном. Легко сделать тёмную тему, адаптивность под планшеты.

✅ Разделение ответственности: Инженер пишет Python, дизайнер (или готовый шаблон) отвечает за красоту.

Минусы:

❌ Вес: Даже простое приложение тянет за собой движок браузера (хотя Eel использует системный браузер, что легче).

❌ Сложность: Нужно знать основы HTML/JS (но для инженера это уровень «скопировать и поменять цифры»).

💡 Важно: В этой книге мы используем Eel, потому что он максимально лёгкий для Python-разработчика. Electron мощнее, но требует знания Node.js, что избыточно для задач лаборатории.

2.3. Сравнительная таблица: Что выбрать инженеру?

Давайте посмотрим на цифры и факты. Представим, что мы создаём панель мониторинга температуры с графиком.

Вывод: Если ваша цель — быстро сделать удобный инструмент для себя и коллег, веб-обёртки выигрывают за счёт готовых библиотек визуализации.

2.4. Почему мы выбираем Eel для этой книги?

В первой книге мы рассматривали Electron, NW.js и Eel на равных. Но для инженерных задач есть нюансы:

Python — язык инженера. Большинство скриптов для Arduino, обработки данных и расчётов уже написаны на Python. Eel позволяет использовать их без переписывания.

Electron избыточен. Он требует Node.js и собирает свой браузер. Для панели управления двигателем это как стрелять из пушки по воробьям.

Eel — это мост. Он не требует глубокого погружения в веб-разработку. Вы вызываете функции Python из JS так же легко, как из другого модуля Python.

🎯 Наша философия: Не становиться веб-разработчиком. Использовать веб-технологии как инструмент для отображения данных, оставляя Python для работы с железом.

2.5. Когда всё-таки стоит выбрать Tkinter?

Честность — важнее моды. Есть случаи, когда веб-обёртки не подходят:

Сверхлёгкие утилиты. Если нужно просто окно с одним полем ввода, которое должно весить 5 МБ.

Работа на старых ПК. В цехах иногда стоят компьютеры с 2 ГБ памяти. Запуск браузера может быть проблематичен.

Полная изоляция. Если политика безопасности запрещает запуск любых браузерных движков (редко, но бывает).

Но для 90% задач современной лаборатории — гибридный подход (Python + Web) является золотым стандартом.

Что мы узнали?

✅ Традиционные GUI (Tkinter) легки, но сложны в вёрстке и визуализации.

✅ Веб-обёртки дают современный интерфейс и мощные графики «из коробки».

✅ Eel идеально подходит инженерам: логика на Python, интерфейс на HTML.

✅ Выбор инструмента зависит от задачи: для дашбордов — веб, для микро-утилит — Tkinter.

✅ В этой книге мы фокусируемся на Eel как на наиболее сбалансированном инструменте.

📋 Практическое задание

Найдите в интернете скриншоты интерфейсов на Tkinter и на веб-технологиях (например, дашборды Grafana или любые веб-приложения).

Сравните их визуально:

2.a. Где легче читать данные?

2.b. Где графики выглядят современнее?

Подумайте о вашем текущем проекте (из Главы 1):

→ Если бы вы делали его на Tkinter, сколько времени ушло бы на построение графика?

→ Если на Eel — сколько времени уйдёт на подключение Chart.js?

Напишите короткий вывод (2–3 предложения): почему для вашей задачи подходит гибридный подход?

💡 Пример: «Для мониторинга вибрации мне нужно 4 графика в реальном времени. На Tkinter я бы потратил неделю на настройку matplotlib. На Eel я возьму готовый шаблон Chart.js за 1 час. Выбираю Eel».

В следующей главе мы познакомимся с инструментами поближе: Python Eel, Electron и Neutralino. Мы разберём их философию и поймём, почему Eel станет нашим основным рабочим инструментом.

Глава 3: Знакомство с инструментами: Python Eel, Electron, Neutralino. Их философия и применение в инженерии

О чём эта глава?

Вы уже понимаете, зачем инженеру своё приложение и почему веб-технологии в оболочке — правильный выбор.

Теперь пришло время познакомиться с тремя главными инструментами этой книги:

Python Eel — минималистичный мост для Python-разработчиков.

Electron — промышленный стандарт для сложных продуктов.

Neutralino — лёгкая современная альтернатива без Node.js.

В этой главе вы узнаете:

Какую проблему каждый из них решает в инженерном контексте.