首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Flet 快速入门!10 分钟上手第一个交互式应用

Flet 快速入门!10 分钟上手第一个交互式应用

原创
作者头像
小白的大数据之旅
发布2025-09-01 10:21:43
发布2025-09-01 10:21:43
2.1K0
举报

Flet 快速入门!10 分钟上手第一个交互式应用

还在羡慕 Flutter 的高颜值界面?用 Python 也能轻松实现啦!Flet 框架能让你用熟悉的 Python 语言打造跨平台应用,今天就手把手教你搭建第一个项目 —— 可交互计数器,从安装到运行全流程演示,零基础也能跟着敲出第一个交互式程序!

一、极简环境搭建

还在为搭建开发环境头疼吗?Flet 可太贴心了,安装起来那叫一个简单。

你只需要打开命令行(Windows 系统可以用 Win + R 调出运行窗口,输入 cmd 回车;Mac 或 Linux 系统打开终端),敲上 “pip install flet” 这一行命令,然后等着它自己安装就行。

不用搞那些复杂的配置,不管你是刚学 Python 的小白,还是有一定经验的开发者,都能轻松搞定。安装完成后,你就可以开始使用 Flet 框架了,是不是超方便?

二、组件快速上手

咱们先来做个可交互计数器,通过这个小例子来看看 Flet 的组件是怎么用的。

1. 整体代码

先给大家看一下完整的代码,后面再一步步讲解:

代码语言:python
复制
import flet as ft

def main(page: ft.Page):

   # 设置页面标题

   page.title = "我的第一个Flet应用"

  

   # 定义计数器变量

   count = ft.Text(value="0", size=30)

  

   # 定义加1函数

   def add_click(e):

       count.value = str(int(count.value) + 1)

       page.update()

  

   # 定义减1函数

   def subtract_click(e):

       count.value = str(int(count.value) - 1)

       page.update()

  

   # 添加组件到页面

   page.add(

       ft.Text("计数器", size=20),

       count,

       ft.Row(

           [

               ft.IconButton(ft.icons.ADD, on_click=add_click),

               ft.IconButton(ft.icons.REMOVE, on_click=subtract_click)

           ]

       )

ft.app(target=main)

2. 组件讲解

  • 文本框(TextField):在这个例子里,我们用ft.Text来显示数值(虽然不是严格意义上的 TextField,但作用类似,都是显示文本),它的value属性就是要显示的内容,size是字体大小。我们通过改变count.value的值,就能让它实时显示计数器的数值。
  • 加减按钮(IconButton):这两个按钮是IconButton组件,ft.icons.ADDft.icons.REMOVE是按钮上的图标。on_click属性用来绑定事件处理函数,当点击加按钮时,就会调用add_click函数,让数值增加 1;点击减按钮时,调用subtract_click函数,让数值减少 1。
  • 事件处理:在add_clicksubtract_click函数里,我们先修改count.value的值,然后调用page.update(),这样页面才能更新显示新的数值。

三、页面个性化设置

1. 自定义窗口标题

在上面的代码中,page.title = "我的第一个Flet应用"这句话就是用来设置窗口标题的,你可以把引号里的内容改成你喜欢的标题。

2. 内容居中对齐

如果想让页面上的内容居中显示,可以这样修改代码,在添加组件的时候用ft.Column并设置alignment属性:

代码语言:python
复制
page.add(

   ft.Column(

       [

           ft.Text("计数器", size=20),

           count,

           ft.Row(

               [

                   ft.IconButton(ft.icons.ADD, on_click=add_click),

                   ft.IconButton(ft.icons.REMOVE, on_click=subtract_click)

               ],

               alignment=ft.MainAxisAlignment.CENTER  # 让按钮在水平方向居中

           )

       ],

       alignment=ft.MainAxisAlignment.CENTER,  # 让整个内容在垂直方向居中

       horizontal_alignment=ft.CrossAxisAlignment.CENTER  # 让整个内容在水平方向居中

   )

)

3. 手动切换明暗主题

要实现手动切换明暗主题,可以添加一个切换按钮,代码如下:

代码语言:python
复制
import flet as ft

def main(page: ft.Page):

   page.title = "我的第一个Flet应用"

   count = ft.Text(value="0", size=30)

  

   def add_click(e):

       count.value = str(int(count.value) + 1)

       page.update()

  

   def subtract_click(e):

       count.value = str(int(count.value) - 1)

       page.update()

  

   # 切换主题函数

   def toggle_theme(e):

       page.theme_mode = ft.ThemeMode.DARK if page.theme_mode == ft.ThemeMode.LIGHT else ft.ThemeMode.LIGHT

       toggle_btn.text = "切换到亮色模式" if page.theme_mode == ft.ThemeMode.DARK else "切换到暗色模式"

       page.update()

  

   toggle_btn = ft.ElevatedButton("切换到暗色模式", on_click=toggle_theme)

  

   page.add(

       ft.Column(

           [

               ft.Text("计数器", size=20),

               count,

               ft.Row(

                   [

                       ft.IconButton(ft.icons.ADD, on_click=add_click),

                       ft.IconButton(ft.icons.REMOVE, on_click=subtract_click)

                   ],

                   alignment=ft.MainAxisAlignment.CENTER

               ),

               toggle_btn

           ],

           alignment=ft.MainAxisAlignment.CENTER,

           horizontal_alignment=ft.CrossAxisAlignment.CENTER

       )

   )

ft.app(target=main)

4. 响应式设计

Flet 支持响应式设计,窗口大小自由调整时,组件会根据窗口大小自动调整布局。上面的代码中使用ft.Columnft.Row来布局,它们本身就具有一定的响应式特性,会根据父容器的大小来调整自身的布局。

四、跨平台运行

Flet 支持跨平台运行,一键切换 Web 模式非常简单,只需修改一行代码。

原来的运行代码是ft.app(target=main),要切换到 Web 模式,只需要改成ft.app(target=main, view=ft.AppView.WEB_BROWSER)

修改后运行代码,应用就会在浏览器中打开,兼顾桌面与网页端体验。

五、全流程演示

  1. 打开命令行,输入pip install flet安装 Flet。
  2. 新建一个 Python 文件,比如counter.py
  3. 把上面带有主题切换功能的代码复制到counter.py中。
  4. 在命令行中进入到counter.py所在的目录,输入python ``counter.py运行程序。
  5. 你会看到一个带有计数器和主题切换按钮的窗口,点击加减按钮可以改变数值,点击主题切换按钮可以切换明暗主题。
  6. 如果想在浏览器中运行,把代码中的ft.app(target=main)改成ft.app(target=main, view=ft.AppView.WEB_BROWSER),再运行程序,就会在浏览器中打开应用。

六、常见的问题和错误

问题 / 错误

解决方法

安装 Flet 时提示 “pip 不是内部或外部命令”

检查 Python 是否正确安装,以及是否把 Python 添加到了环境变量中。如果没有,重新安装 Python 并勾选 “Add Python to PATH”。

运行代码时提示 “ModuleNotFoundError: No module named 'flet'”

说明 Flet 没有安装成功,重新在命令行中输入pip install flet进行安装。

点击按钮后数值没有更新

检查是否在事件处理函数的最后调用了page.update(),只有调用这个方法,页面才会更新显示。

切换到 Web 模式后无法在浏览器中打开

可能是端口被占用,可以尝试修改端口,比如ft.app(target=main, view=ft.AppView.WEB_BROWSER, port=8000),把 8000 换成其他未被占用的端口。

七、面试的时候一般会问到的问题及回答

  1. 什么是 Flet?它有什么优势? 答:Flet 是一个可以用 Python 语言开发跨平台应用的框架。它的优势在于让 Python 开发者能够轻松实现高颜值界面,无需学习新的语言,安装简单,零门槛入门,支持跨平台运行,兼具 Flutter 的高性能与 Python 的简洁,适合快速原型开发、数据可视化等场景。
  2. Flet 和其他 Python GUI 框架(如 Tkinter、PyQt)相比,有什么区别? 答:和 Tkinter 相比,Flet 做出的界面更美观,更现代化;和 PyQt 相比,Flet 学习成本更低,使用更简单,不需要编写复杂的布局代码。而且 Flet 支持跨平台运行在网页端,这是一些传统 Python GUI 框架不具备的优势。
  3. 如何在 Flet 中实现组件之间的交互? 答:在 Flet 中,可以通过给组件绑定事件处理函数来实现交互。比如给按钮的on_click属性绑定一个函数,当点击按钮时,就会执行这个函数,在函数中可以修改其他组件的属性,然后调用page.update()更新页面,从而实现组件之间的交互。
  4. Flet 如何实现跨平台运行? 答:Flet 基于 Flutter 构建,Flutter 本身就支持跨平台,所以 Flet 也继承了这一特性。通过简单修改代码中的参数,比如设置view=ft.AppView.WEB_BROWSER,就可以让应用在浏览器中运行,无需进行大量的修改就能实现跨平台运行。

Flet 作为新兴框架,确实给 Python 开发者带来了很多便利,用它来开发交互式应用简单又高效,赶紧动手试试吧!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Flet 快速入门!10 分钟上手第一个交互式应用
    • 一、极简环境搭建
    • 二、组件快速上手
      • 1. 整体代码
      • 2. 组件讲解
    • 三、页面个性化设置
      • 1. 自定义窗口标题
      • 2. 内容居中对齐
      • 3. 手动切换明暗主题
      • 4. 响应式设计
    • 四、跨平台运行
    • 五、全流程演示
    • 六、常见的问题和错误
    • 七、面试的时候一般会问到的问题及回答
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档