用Flet+Python写个美观的登录程序

电子说

1.3w人已加入

描述

在Google的推广下,很多人知道了Flutter在前端的战斗力。

Flutter是一个开源的UI工具包,可以用于构建跨平台的移动应用程序、Web应用程序和桌面应用程序。与许多其他跨平台解决方案不同,Flutter不使用WebView或本机UI组件来实现跨平台的功能,而是使用其自己的设计风格来构建自定义的用户界面。

但在Google主推的技术栈中,Dart是Flutter的主力编程语言。

Dart具有许多现代编程语言的特性,例如静态类型检查、异步编程和扩展方法,可以在Flutter中广泛使用。

如果大家懂Dart当然最好,但如果一个Python开发者想用Flutter做好看的界面,他要怎么做呢?

Flet就是在Python中构建Flutter应用最快的方法。

它使开发人员可以用Python轻松构建实时网络,移动和桌面应用程序,无需前端经验。

本教程用Flet+Python创建了现代登录表单。可以让大家一窥Python在Flet的加持下能有怎样的发挥。其中的字段阴影、动画和状态控制……都使UI和UX更具吸引力。

python

之前的Flet 桌面应用程序的架构

python

在桌面上运行 Flet 程序涉及三个进程协同工作:

Python runtime () —  运行 Python 脚本的解释器。这是从命令行开始的,Python 启动 Fletd 服务器并通过 WebSockets 连接它。(Python3)

Fletd server () — 用 Go 编写的 Flet Web 服务器,侦听 TCP 端口。Fletd 保存所有用户会话的状态(对于桌面应用程序,只有一个会话),并在 Python 程序和 Flet 客户端之间调度页面更新和用户生成的事件。(fletd)

Flet client ()  — 用 Flutter 编写并在本机操作系统窗口中显示 UI 的桌面应用程序。Flet 客户端通过 WebSockets 连接到 Fletd 服务器。(flet)

新的 Flet 桌面架构

Flet桌面应用架构可以通过用Python编写的“存根”替换Fletd并通过套接字(Windows)和命名管道(macOS和Linux)与Flet桌面客户端通信。

python

Flet 移动架构

移动应用程序在非常严格的环境中运行,存在许多限制。例如,在 iOS 上,应用无法生成新进程。换句话说,Flet Flutter应用程序不能只是启动“python.exe”并将脚本作为参数传递。

幸运的是,Python 可以作为 C 库嵌入到另一个应用程序中,而 Dart(编写 Flutter 应用程序的语言)允许通过 FFI(外部函数接口)调用 C 库。

此外,虽然Android允许加载动态链接的库,但iOS需要将所有库静态链接到应用程序可执行文件中。

Flet 移动架构如图所示:

python

Python 运行时将与 Flutter 客户端应用程序静态或动态链接,并通过 FFI 和命名管道调用。

不过,在移动设备上运行Python会有一些限制。比如要求使用“纯”Python模块,或专门为移动ARM64架构编译的本机代码模块。

你只需要打开命令行,然后输入:

pip install flet

就可以拥有这个精美的前端框架了。

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分