Flet 是一个现代跨平台 的 Python UI 框架,允许开发者使用纯 Python 构建 Web 应用、桌面应用(Windows/macOS/Linux)、移动应用(Android/iOS)。它基于 Flutter 渲染引擎,因此具有高性能、现代化 UI、响应式布局等优势,却无需掌握 Dart 或 Flutter,只需写 Python 即可。
Flet 特别适用于快速开发企业内部工具、后台管理界面、实时仪表盘、桌面应用原型等,被认为是“Python 世界的 Flutter”。
安装 :
pip install flet常见应用场景:
(1)跨平台 GUI 开发(无需 Dart)
使用 Python 构建 Windows、macOS、Linux GUI 程序,界面效果与 Flutter 一致。
(2)Web 应用与管理后台
一套代码可直接在浏览器运行,适合制作管理后台、仪表盘、可视化面板。
(3)移动应用原型开发
可部署到移动端(Android / iOS),适合作为快速验证 UI 的工具。
(4)实时应用与仪表盘
内置 WebSocket 支持,适合动态数据更新,如实时监控、业务面板。
(5)企业内部工具
无需前端技术栈,快速做出内部系统界面或小型业务工具。
◆ ◆ ◆
核心概念
1、Flet 应用程序(Page)
Flet 使用 page 对象表示应用页面,包含:
• 主题(light/dark)
• 控件列表
• 路由管理
• 响应式布局
• 事件回调执行环境
例如:
page.title = "Hello Flet"2、控件(Controls)
类似 Flutter 小部件(Widgets),但用 Python 创建。
常用控件包括:
• Text:文本
• TextField:输入框
• ElevatedButton:按钮
• Row / Column:布局
• Container:容器
• Image:图像
• DataTable:表格
• Dropdown:下拉框
• IconButton:图标按钮
Flet 控件均支持属性绑定与事件处理。
3、事件回调(Events)
控件的事件通过 Python 函数处理,如:
button.on_click = on_click支持:
• 点击
• 输入变化
• 列表选择
• 滑块调整
• 路由变化
• 文件上传事件等
4、响应式布局(Responsive Layout)
基于 Flutter 的布局系统,可灵活适配桌面/网页/移动端:
• Row
• Column
• ResponsiveRow
• 自动拉伸、对齐、边距控制
5、热重载(Hot Reload)
开发时可直接热重载 UI,而不必重启应用。
◆ ◆ ◆
应用举例
例 1:最简单的窗口
ft.app(target=main)例 2:按钮点击事件
ft.app(target=main)例 3:输入框与响应
ft.app(target=main)例 4:布局示例(Row + Column)
ft.app(target=main)例 5:运行 Web 模式
ft.app(target=main, view=ft.WEB_BROWSER)◆ ◆ ◆
常用函数与类速览
ft.app(target, view=None)
启动 Flet 应用。
参数:
target:主函数,接收 Page 对象。
view:窗口类型(桌面、Web、移动)。
返回: 无。
Page
Flet 应用主页面对象。
常用属性:
title:页面标题
controls:控件列表
route:当前路由
theme_mode:主题模式
常用方法:
add():添加控件
update():刷新页面
go(route):路由跳转
Controls(如 Text、Row、Button)
所有 UI 控件类型。
参数: 文本内容、样式属性、事件回调等。
返回: 控件对象。
Text(value)
显示文本控件。
参数:
value:字符串。
返回: Text 实例。
TextField(label=None)
文本输入框。
参数:
label:标签文字。
返回: TextField 实例。
ElevatedButton(text, on_click=None)
按钮控件。
参数:
text:按钮文字。
on_click:点击事件回调。
返回: ElevatedButton 实例。
Row/Column(controls)
水平或垂直布局。
参数:
controls:控件列表。
返回: 布局对象。
Container(content, padding, bgcolor, expand=False)
容器控件。
参数:
content:子控件。
padding:内边距。
bgcolor:背景色。
expand:自动扩展。
◆ ◆ ◆
补充说明
(1)Flet 底层使用 Flutter 渲染,因此 UI 性能远高于 Tkinter / PySimpleGUI。
(2)Python 层不处理绘图,实际渲染在前端完成,通过 WebSocket 与 Python 交互。
(3)可以打包为桌面应用(Flet CLI 支持打包)。
(4)虽支持移动端,但当前在部署和性能上仍在持续改进中。
(5)适合快速开发与内部工具,但不推荐用于复杂大型前端项目。
小结
Flet 使 Python 开发者能够以极低的学习成本构建现代、跨平台的 GUI 与 Web 应用。凭借 Flutter 的高性能渲染和丰富控件体系,Flet 适合构建内部工具、实时仪表盘、企业管理界面等高交互应用。其简单的事件机制、响应式布局和“纯 Python 无需前端”的开发模式极大降低了应用界面开发难度,是当前 Python 最具潜力的跨平台 UI 框架之一。
![]()
“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.