Flet:用 Python 构建跨平台桌面与 Web 应用
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 支持,适合动态数据更新,如实时监控或业务面板。
核心机制解析
Page 对象
Flet 使用 page 对象表示应用页面,包含主题设置、控件列表、路由管理和事件回调执行环境。
def main(page):
page.title = "Hello Flet"
控件(Controls)
类似 Flutter 的小部件(Widgets),但用 Python 创建。常用控件包括文本、输入框、按钮、布局容器等。
- Text:文本显示
- TextField:输入框
- ElevatedButton:按钮
- Row / Column:布局容器
- Container:通用容器
- DataTable:表格
- Dropdown:下拉框
所有控件均支持属性绑定与事件处理。
事件回调
控件的事件通过 Python 函数处理,例如点击、输入变化、列表选择等。
def on_click(e):
print("Clicked!")
button.on_click = on_click
响应式布局
基于 Flutter 的布局系统,可灵活适配桌面、网页或移动端。支持 Row、Column、ResponsiveRow 等组件,自动拉伸、对齐及边距控制。
热重载
开发时可直接热重载 UI,无需重启应用,极大提升调试效率。
实战示例
最简单的窗口
创建一个基础窗口并添加文本。
import flet as ft
():
page.add(ft.Text())
ft.app(target=main)


