在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更具吸引力。
之前的Flet 桌面應用程序的架構
在桌面上運行 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桌面客戶端通信。
Flet 移動架構
移動應用程序在非常嚴格的環境中運行,存在許多限制。例如,在 iOS 上,應用無法生成新進程。換句話說,Flet Flutter應用程序不能只是啟動“python.exe”并將腳本作為參數傳遞。
幸運的是,Python 可以作為 C 庫嵌入到另一個應用程序中,而 Dart(編寫 Flutter 應用程序的語言)允許通過FFI(外部函數接口)調用 C 庫。
此外,雖然Android允許加載動態鏈接的庫,但iOS需要將所有庫靜態鏈接到應用程序可執行文件中。
Flet 移動架構如圖所示:
Python 運行時將與 Flutter 客戶端應用程序靜態或動態鏈接,并通過 FFI 和命名管道調用。
不過,在移動設備上運行Python會有一些限制。比如要求使用“純”Python模塊,或專門為移動ARM64架構編譯的本機代碼模塊。
你只需要打開命令行,然后輸入:
pip install flet
就可以擁有這個精美的前端框架了。
審核編輯 :李倩
-
編程語言
+關注
關注
10文章
1955瀏覽量
36141 -
應用程序
+關注
關注
38文章
3322瀏覽量
58756 -
python
+關注
關注
56文章
4825瀏覽量
86228
原文標題:用Flet+Python寫個美觀的登錄程序
文章出處:【微信號:IoT前哨站,微信公眾號:IoT前哨站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
用Verilog HDL寫個蜂鳴器小程序
用Shell或者Python寫個立體三角形
labview中用python節點實現登錄微信獲取好友列表,登錄怎么掃碼?
用Python完成鴻蒙開發板外設控制
用Python寫SecureCRT批量登錄/巡檢網絡設備腳本
如何在Windows下使用 Supervisor 重新拉起崩潰的Python程序

如何快速開發出功能強大、界面美觀的GUI 應用程序

評論