简介

官网:The fastest way to build Flutter apps in Python | Flet

github:flet-dev/flet: Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required. (github.com)

img

Flet

The fastest way to build Flutter apps in Python | Flet

Flet 是一个框架,可以用它构建交互式多用户 Web、桌面和移动应用程序,而无需具有前端开发经验。可以使用基于 Google 的 Flutter 的 Flet 控件为程序构建一个 UI。Flet 不只是“包装”Flutter 小部件,而是通过组合较小的小部件、隐藏复杂性、实现 UI 最佳实践、应用合理的默认值来添加自己的“意见”——所有这些都是为了确保您的应用程序看起来很酷和专业,无需额外的努力。Introduction | Flet

根据网上提供的相关信息显示,这一框架是于2022年4月Python全新Flet框架或将打通iOS、Android、Macos和Windows多平台开发(Flet教程含3个完成项目源码)_知识大胖的博客-CSDN博客上线。我是在大约2022年11月份了解到该框架。由于之前有稍微了解过Flutter,因此,我对这一能够在Python上进行Flutter应用程序开发的解决方案抱有极大的兴趣。

目前来说,网上关于Flet的资料相对来说比较少(以b站为例,目前基本没有相关介绍)。

img

b站上搜索Flet相关内容

环境要求及安装

根据Pypi上显示,当前(2022年12月23日)的安装要求为

Python 3.7 or above on Windows, Linux or macOSflet · PyPI

安装方式与一般的包安装方式一致,一般可以选择使用pip安装。

1
pip install flet

第一个程序

运行文档里的counter.py程序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import flet as ft

def main(page: ft.Page):
page.title = "Flet counter example"
page.vertical_alignment = ft.MainAxisAlignment.CENTER

txt_number = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, width=100)

def minus_click(e):
txt_number.value = str(int(txt_number.value) - 1)
page.update()

def plus_click(e):
txt_number.value = str(int(txt_number.value) + 1)
page.update()

page.add(
ft.Row(
[
ft.IconButton(ft.icons.REMOVE, on_click=minus_click),
txt_number,
ft.IconButton(ft.icons.ADD, on_click=plus_click),
],
alignment=ft.MainAxisAlignment.CENTER,
)
)

ft.app(target=main)

img

计数器运行结果