Textual Когда терминал становится удобным интерфейсом
Помните те времена, когда консольные приложения выглядели как монотонные строки текста? Сегодня терминал может быть не менее удобным, чем графические интерфейсы, благодаря Textual — Python-фреймворку для создания красивых TUI (Text User Interface) приложений.
Что такое Textual?
Textual — это фреймворк от создателей популярной библиотеки Rich, который позволяет строить интерактивные приложения для терминала с современным интерфейсом. Но самое интересное — эти же приложения можно запускать и в браузере!
# Простейший пример — часы в терминале
from textual.app import App, ComposeResult
from textual.widgets import Digits
class ClockApp(App):
def compose(self) -> ComposeResult:
yield Digits("")
def on_ready(self):
self.update_clock()
self.set_interval(1, self.update_clock)
def update_clock(self):
from datetime import datetime
self.query_one(Digits).update(f"{datetime.now().time():%T}")
if __name__ == "__main__":
app = ClockApp()
app.run()
Почему это круто?
- Кроссплатформенность — работает на macOS, Linux и Windows
- Готовые виджеты — кнопки, таблицы, деревья, поля ввода и многое другое
- CSS-подобное оформление — стилизуйте интерфейс знакомым способом
- Асинхронность — но не обязательна, если вам она не нужна
- Веб-режим — запускайте терминальные приложения в браузере
Кому это пригодится?
- Разработчикам CLI-инструментов, которые хотят улучшить UX
- Администраторам систем, создающим свои утилиты для мониторинга
- Всем, кто пишет Python-скрипты и хочет добавить удобный интерфейс
- Тем, кому нужно быстро прототипировать идеи без тяжелых GUI-фреймворков
Как начать?
Установка проще некуда:
pip install textual textual-dev
А посмотреть демо можно командой:
python -m textual
Что внутри?
Textual предлагает богатый набор возможностей:
- Готовые виджеты — от простых кнопок до сложных таблиц данных
- Гибкая компоновка — располагайте элементы как в вебе
- Темы оформления — несколько вариантов "из коробки"
- DevTools — консоль разработчика прямо в терминале
- Командная палитра — быстрый доступ к функциям (Ctrl+P)
Веб-режим — фишка, которая удивляет
Любое Textual-приложение можно запустить как веб-приложение:
textual serve "python -m textual"
Это открывает потрясающие возможности для:
- Демонстрации инструментов коллегам
- Создания внутренних веб-интерфейсов
- Быстрого прототипирования идей
Когда стоит попробовать Textual?
Если вы:
- Устали от неудобных консольных интерфейсов
- Хотите добавить интерактивность своим скриптам
- Ищете легкий способ создать инструмент с UI
- Цените Python и хотите оставаться в его экосистеме
Textual — это свежий взгляд на то, какими могут быть терминальные приложения. Он сочетает простоту Python с мощью современных интерфейсов, и при этом не требует изучения сложных GUI-фреймворков.
А вы уже пробовали создавать интерфейсы в терминале? Какой инструмент используете?
