使用Python创建Flet GUI应用程序

入门


使用Python创建Flet应用程序

要编写 Flet 应用程序,您不需要是前端大师,但建议您具备 Python 和面向对象编程的基础知识。

在本文档中,我们将学习一个Flet应用程序的结构,了解如何使用 Flet 控件输出数据、向用户请求数据以及构建基本页面布局。我们还将介绍一些打包和部署选项,以便为您的用户提供现成的应用程序。

安装flet模块

Flet 需要 Python 3.7 或更高版本。要启动 Flet,您需要先安装flet模块:

pip install flet

💥 注意

需要升级flet模块,请运行:
pip install flet --upgrade

要安装 Flet 预发行版(对于高级用户),请运行(初学者不推荐,请忽略):

pip install flet --pre

💥 警告

我们建议将预发布版本安装到虚拟环境中。

Linux

在 Linux 和 WSL 上运行 Flet 应用程序需要安装GStreamer库。您的系统中很可能已经安装了它们,但如果您在运行 Flet 应用程序时遇到该错误error while loading shared libraries: libgstapp-1.0.so.0: cannot open shared object file: No such file or directory,则需要安装 GStreamer。

要在 Ubuntu/Debian 上安装 GStreamer,请运行以下命令:

sudo apt-get update
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio

有关在其他 Linux 发行版上安装的信息,请参阅本指南

WSL

Flet 应用程序可以在 WSL2 上运行。如果您遇到cannot open display错误,请按照本指南进行故障排除。

基础应用程序结构

一个非常简单的 Flet 应用程序具有以下结构:

import flet as ft

def main(page: ft.Page):
    # 在页面上增加或者更新控件
    pass

ft.app(target=main)

Flet结构

💥 注意

本节特意称为“基础”,因为在本指南的后面部分,我们将学习具有可重用控件的应用程序结构的更真实的方法。

典型的 Flet 程序以调用flet.app()应用程序开始等待新用户会话的位置结束。函数main()是 Flet 应用程序中的入口点。每个用户会话都会在一个新线程上调用它,并Page传递一个实例。在浏览器中运行 Flet 应用程序时,将为每个打开的选项卡或页面启动新的用户会话。作为桌面应用程序运行时,仅创建一个会话。

Page就像特定于用户的“画布”,用户会话的视觉状态。要构建应用程序 UI,您需要向页面添加和删除控件,并更新它们的属性。上面的代码示例将仅向每个用户显示一个空白页面。

默认情况下,Flet 应用程序在本机操作系统窗口中启动,这对于开发来说非常方便。但是,您可以通过修改调用在新的浏览器窗口中打开它,flet.app如下所示:

ft.app(target=main, view=ft.AppView.WEB_BROWSER)

信息
在内部,每个 Flet 应用程序都是一个 Web 应用程序,即使在本机操作系统窗口中打开,内置的 Web 服务器仍然会在后台启动。Flet Web 服务器称为“Fletd”,默认情况下它侦听随机 TCP 端口。您可以指定自定义 TCP 端口,然后在浏览器中打开应用程序以及桌面视图:

flet.app(port=8550, target=main)

在浏览器中打开http://localhost:<port>以查看 Flet 应用程序的 Web 版本。

用户界面由控件(也称为小部件)组成。要使控件对用户可见,必须将它们添加到Page其他控件中或内部。页面是最顶层的控件。相互嵌套的控件可以表示为以 Page 为根的树。

控件只是常规的 Python 类。通过构造函数创建控件实例,参数与其属性相匹配,例如:

t = ft.Text(value="Hello, world!", color="green")

要在页面上显示控件,请将其添加到controls页面列表并调用page.update()以将页面更改发送到浏览器或桌面客户端:

import flet as ft

def main(page: ft.Page):
    t = ft.Text(value="Hello, world!"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值