(原) Flet 基于Flutter的Python跨平台框架

原创文章,请后转载,并注明出处。

不用Python比较久了,库多,所以功能强。也算个跨平台。但文件太杂。
今天这个Flet与Flutter占边,据说也跨平台,试试。如果Golang能搞这个样的GUI就好了。

“Flet是一个框架,允许用你喜欢的语言构建交互式多用户Web,桌面和移动应用程序,而无需拥有前端开发的经验。”
作者Feodor Fitsner费多尔·菲茨纳 2022年6月2日发布第一个版本。

官网https://flet.dev,现在内容简单,示例不足。

它在后台建立一个Web服务,前后端通过Websocket进行通信。看起来界面是有Flutter的风格。不过我在Ubuntu下没安装成功,不知为何。

目前这个项目还只是一个BETA版,估计还得让"子弹飞一会儿",希望有后继发展。

安装

pip install flet

简单示例

import flet
from flet import Checkbox, ElevatedButton, Row, TextField

def main(page):
    def add_clicked(e):
        page.add(Checkbox(label=new_task.value))

    new_task = TextField(hint_text="Whats needs to be done?", width=300)
    page.add(Row([new_task, ElevatedButton("Add", on_click=add_clicked)]))

flet.app(target=main)

打包为应用

pip install pyinstaller 安装打包工具
pyinstaller your_program.py 打个包
pyinstaller your_program.py –noconsole –noconfirm 打个Window包,且只有一个文件(个人比较喜欢干净的一个文件)
pyinstaller your_program.py –noconsole –noconfirm –onefile –icon <your-image.png> 定制您的图标
pyinstaller your_program.py –noconsole –noconfirm –onefile –add-data “assets;assets” 把资源文件也包进去

计划

2022 年 9 月至 12 月

图表控件、数据表控件、动画;语言支持:JavaScript/TypeScript、Go、C#; 带有简单 ORM 的内置数据库。
(你要支持Go?我等着。)

其它

可以使用 flet main.py 来运行脚本,可以实现热更新功能,修改后能及时看到效果。