Flet 简介
Flet 是一个现代跨平台的 Python UI 框架,允许开发者使用纯 Python 构建 Web 应用、桌面应用(Windows/macOS/Linux)、移动应用(Android/iOS)。它基于 Flutter 渲染引擎,因此具有高性能、现代化 UI、响应式布局等优势,却无需掌握 Dart 或 Flutter,只需写 Python 即可。
Flet 特别适用于快速开发企业内部工具、后台管理界面、实时仪表盘、桌面应用原型等,被认为是'Python 世界的 Flutter'。
安装
pip install flet
常见应用场景
- 跨平台 GUI 开发:使用 Python 构建 Windows、macOS、Linux GUI 程序,界面效果与 Flutter 一致。
- Web 应用与管理后台:一套代码可直接在浏览器运行,适合制作管理后台、仪表盘、可视化面板。
- 移动应用原型开发:可部署到移动端(Android / iOS),适合作为快速验证 UI 的工具。
- 实时应用与仪表盘:内置 WebSocket 支持,适合动态数据更新,如实时监控、业务面板。
- 企业内部工具:无需前端技术栈,快速做出内部系统界面或小型业务工具。
核心概念
1. Flet 应用程序(Page)
Flet 使用 page 对象表示应用页面,包含主题(light/dark)、控件列表、路由管理、响应式布局及事件回调执行环境。
示例:
def main(page):
page.title = "Hello Flet"
2. 控件(Controls)
类似 Flutter 小部件(Widgets),但用 Python 创建。常用控件包括 Text(文本)、TextField(输入框)、ElevatedButton(按钮)、Row/Column(布局)、Container(容器)、Image(图像)、DataTable(表格)、Dropdown(下拉框)、IconButton(图标按钮)。Flet 控件均支持属性绑定与事件处理。
3. 事件回调(Events)
控件的事件通过 Python 函数处理,如点击、输入变化、列表选择、滑块调整、路由变化、文件上传事件等。
示例:
def on_click(e):
print("Clicked!")
button.on_click = on_click
4. 响应式布局(Responsive Layout)
基于 Flutter 的布局系统,可灵活适配桌面/网页/移动端,支持 Row、Column、ResponsiveRow、自动拉伸、对齐、边距控制。
5. 热重载(Hot Reload)
开发时可直接热重载 UI,而不必重启应用。
应用举例
例 1:最简单的窗口
import flet as ft
def main():
page.add(ft.Text())
ft.app(target=main)

