Python Flet: GUI приложения легко!

Flet — библиотека Python для создания привлекательных и функциональных пользовательских интерфейсов (UI) приложений для настольных компьютеров и веб-платформ. Она предоставляет готовые виджеты и стили, упрощая разработку.

Начало работы: Установка Flet и создание виртуального окружения

Для эффективной работы с Flet в VS Code рекомендуется установить расширение «Python». Это обеспечит подсветку синтаксиса и упростит создание виртуального окружения. Создайте виртуальное окружение (например, используя venv) и активируйте его. Затем установите Flet с помощью pip:

pip install flet

Создание базового Flet приложения

Создайте файл main.py и импортируйте библиотеку Flet:

import flet as ft

Создайте основную функцию приложения:

def main(page: ft.Page):
    page.title = "Flet App"
    page.vertical_alignment = ft.MainAxisAlignment.CENTER
    # ... добавление элементов UI ...

Запустите приложение с помощью ft.app:

ft.app(target=main)

Добавление элементов UI

Определите тему приложения:

page.theme_mode = ft.ThemeMode.LIGHT  # или ft.ThemeMode.DARK

Добавьте элементы с помощью ft.Row:

page.add(
    ft.Row(
        [
            ft.IconButton(ft.icons.HOME),
            ft.Icon(ft.icons.ARROW_BACK),
        ],
        alignment=ft.MainAxisAlignment.CENTER,
    )
)

Этот код добавляет ряд с иконками «Домик» и «Назад», выровненными по центру.

Текст и поле ввода

Добавьте ряд с текстом и полем ввода:

page.add(
    ft.Row(
        [
            ft.Text("IO"),
            ft.TextField(value="0", width=150, text_align=ft.TextAlign.CENTER),
        ]
    )
)

Обработка событий

Для взаимодействия с элементами, добавьте обработчик событий. Например, функция для получения данных из поля ввода:

def get_info(e):
    user_label.value = user_text.value
    page.update()

Здесь user_label и user_text — переменные, хранящие ссылки на объекты ft.Text и ft.TextField.

Добавьте кнопку и обработчик события on_click:

user_label = ft.Text()
user_text = ft.TextField(value="0", width=150, text_align=ft.TextAlign.CENTER)

page.add(
    ft.ElevatedButton(text="Click me", on_click=get_info)
)

При нажатии кнопки значение из поля ввода отобразится в текстовой надписи. page.update() обновляет интерфейс.

Веб-приложение

Для запуска приложения в веб-браузере добавьте параметр view в ft.app:

ft.app(target=main, view=ft.AppView.WEB_BROWSER)

Дополнительные возможности

Flet предоставляет множество виджетов (кнопки, выпадающие списки, элементы навигации, анимация и др.). Подробное описание доступно в официальной документации.

Flet позволяет создавать привлекательные и функциональные приложения на Python с минимальным количеством кода. Простота, встроенные стили и возможность создания веб-приложений делают её отличным инструментом для разработки UI.

Что будем искать? Например,программа