不用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 来运行脚本,可以实现热更新功能,修改后能及时看到效果。