跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python大前端

Python 第三方库 Flet:构建跨平台桌面与 Web 应用

综述由AI生成Flet 是基于 Flutter 渲染引擎的 Python UI 框架,支持使用纯 Python 开发 Web、桌面及移动应用。文章介绍了安装方法、核心概念(Page、Controls、Events)、响应式布局及热重载功能,并通过多个代码示例展示了窗口创建、事件处理、输入框交互及布局组合。Flet 适合快速构建企业内部工具、后台管理及实时仪表盘,无需掌握 Dart 或前端技术栈,但复杂大型项目需谨慎评估。

漫步发布于 2026/4/6更新于 2026/5/2339 浏览

Flet 简介

Flet 是一个现代跨平台的 Python UI 框架,允许开发者使用纯 Python 构建 Web 应用、桌面应用(Windows/macOS/Linux)、移动应用(Android/iOS)。它基于 Flutter 渲染引擎,因此具有高性能、现代化 UI、响应式布局等优势,却无需掌握 Dart 或 Flutter,只需写 Python 即可。

Flet 特别适用于快速开发企业内部工具、后台管理界面、实时仪表盘、桌面应用原型等,被认为是'Python 世界的 Flutter'。

安装

pip install flet

常见应用场景

  1. 跨平台 GUI 开发:使用 Python 构建 Windows、macOS、Linux GUI 程序,界面效果与 Flutter 一致。
  2. Web 应用与管理后台:一套代码可直接在浏览器运行,适合制作管理后台、仪表盘、可视化面板。
  3. 移动应用原型开发:可部署到移动端(Android / iOS),适合作为快速验证 UI 的工具。
  4. 实时应用与仪表盘:内置 WebSocket 支持,适合动态数据更新,如实时监控、业务面板。
  5. 企业内部工具:无需前端技术栈,快速做出内部系统界面或小型业务工具。

核心概念

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)
page: ft.Page
"Hello, Flet!"

例 2:按钮点击事件

import flet as ft

def main(page: ft.Page):
    def on_click(e):
        page.add(ft.Text("按钮被点击"))
    page.add(ft.ElevatedButton("点我", on_click=on_click))
    ft.app(target=main)

例 3:输入框与响应

import flet as ft

def main(page: ft.Page):
    name = ft.TextField(label="请输入姓名")
    
    def update_name(e):
        page.add(ft.Text(f"你好,{name.value}"))
    
    page.add(name, ft.ElevatedButton("确认", on_click=update_name))
    ft.app(target=main)

例 4:布局示例(Row + Column)

import flet as ft

def main(page: ft.Page):
    page.add(
        ft.Row([
            ft.Container(ft.Text("左"), width=100,),
            ft.Container(ft.Text("右"), width=100,)
        ])
    )
    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:所有 UI 控件类型(Text、TextField、ElevatedButton、Row/Column、Container 等),支持文本内容、样式属性、事件回调等参数。

补充说明

  1. Flet 底层使用 Flutter 渲染,因此 UI 性能远高于 Tkinter / PySimpleGUI。
  2. Python 层不处理绘图,实际渲染在前端完成,通过 WebSocket 与 Python 交互。
  3. 可以打包为桌面应用(Flet CLI 支持打包)。
  4. 虽支持移动端,但当前在部署和性能上仍在持续改进中。
  5. 适合快速开发与内部工具,但不推荐用于复杂大型前端项目。

小结

Flet 使 Python 开发者能够以极低的学习成本构建现代、跨平台的 GUI 与 Web 应用。凭借 Flutter 的高性能渲染和丰富控件体系,Flet 适合构建内部工具、实时仪表盘、企业管理界面等高交互应用。其简单的事件机制、响应式布局和'纯 Python 无需前端'的开发模式极大降低了应用界面开发难度,是当前 Python 最具潜力的跨平台 UI 框架之一。

目录

  1. Flet 简介
  2. 安装
  3. 常见应用场景
  4. 核心概念
  5. 1. Flet 应用程序(Page)
  6. 2. 控件(Controls)
  7. 3. 事件回调(Events)
  8. 4. 响应式布局(Responsive Layout)
  9. 5. 热重载(Hot Reload)
  10. 应用举例
  11. 例 1:最简单的窗口
  12. 例 2:按钮点击事件
  13. 例 3:输入框与响应
  14. 例 4:布局示例(Row + Column)
  15. 例 5:运行 Web 模式
  16. 常用函数与类速览
  17. 补充说明
  18. 小结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 三数之和:C 语言双指针解法详解
  • TCP TIME_WAIT 状态的作用及服务端堆积原因分析
  • 链表核心算法实战:移除元素与合并有序链表详解
  • Python 3.12 内置函数全图鉴:71 个核心工具详解
  • LLaMA Factory 微调时报 disable multiprocessing 错误解决
  • FPGA 实现 CAN 总线原理与 Verilog 代码详解
  • Python 基础语法详解:从数据类型到序列操作
  • Windows 环境下使用 Docker 部署 Java 开发中间件指南
  • JavaScript 中 var、let、const 的核心区别与实战应用
  • C++ STL 标准库算法详解
  • SketchUp STL 插件使用指南:3D 打印核心技巧与安装配置
  • Android WebRTC 实战指南:从基础搭建到性能优化
  • Java 网络通讯核心协议详解:TCP、UDP 与 HTTP/HTTPS
  • 命令行工具 MCPHost:通过模型上下文协议与大模型交互
  • Python 转行三大热门方向:爬虫、数据分析与 Web 开发入门指南
  • Java JDK 21 安装与环境配置指南(Windows + macOS)
  • QGroundControl 跨平台安装指南:Windows macOS Linux Android 部署
  • 阿里面试官视角的前端面试核心考点梳理
  • Java 工程师转行 AI 大模型实战经验与学习路径分享
  • Cursor 配置指南:让 AI 辅助 Java 高效开发

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online