1、官网地址
Build multi-platform apps in Python powered by Flutter | Flet
2、最近一直再找有没有可以跨平台,编写代码方便快捷的GUI框架,最近再网上看到了Flet 直接就操练起来了。看它的官网现在支持移动端和PC端,目前的主要语言是Python未来还会支持C#等,非常有意思。根据官网的操作步骤做了简单的几步如下。
3、安装Flet:
pip install Flet
4、创建Felt项目,注意这里需要安装Git。
flet create DemoProject
5、我操练的代码如下
import time
import flet as ft
def main(page: ft.Page):
page.title="Hello, World!"
#隐藏标题栏
#page.window_title_bar_hidden=True
#添加一个Hello, World!的文本
t=ft.Text(value=f"Hello, World!",color="green")
page.controls.append(t)
page.update()
page.add(
ft.Row(controls={
ft.Text("A"),
ft.Text("B"),
ft.Text("C")}),
ft.Row(controls={
ft.TextField(label="你的名字"),
ft.ElevatedButton(text="告诉我你的名字")
})
)
page.update()
#定义点击函数
def button_clicked(e):
page.add(ft.Text("Clicked!"))
page.add(ft.ElevatedButton(text="Click me",on_click=button_clicked))
def add_clicked(e):
page.add(ft.Checkbox(label=new_task.value))
new_task.value=""
new_task.focus()
new_task.update()
new_task=ft.TextField(hint_text="请输入要添加的Checkbox文字内容",width=300)
page.add(ft.Row([new_task,ft.ElevatedButton("Add",on_click=add_clicked)]))
def btn_click(e):
if not txt_name.value:
txt_name.error="请输入你的名字"
page.update()
else:
name=txt_name.value
page.clean()
page.add(ft.Text(f"Hello, {name}!"))
txt_name=ft.TextField(label="你的名字",width=200)
page.add(txt_name,ft.ElevatedButton("Say Hello!",on_click=btn_click))
#CheckBox 勾选函数
def checkbox_changed(e):
output_text.value=(f"You have learned how to ski: {todo_check.value}")
page.update()
output_text=ft.Text()
todo_check=ft.Checkbox(label="ToDo:Learn how to use ski",value=True,on_change=checkbox_changed)
page.add(todo_check,output_text)
#控件禁用
first_name=ft.TextField(label="first_name.disabled=False")
last_name=ft.TextField(label="last_name.disabled=True")
first_name.disabled=False
last_name.disabled=True
# r=page.add(ft.Row([first_name,last_name]))
c=page.add(ft.Column(controls=[first_name,last_name]))
#Dropdown 控件使用
def SubmitCliked(e):
output_text.value=f"You selected {color_dropdown.value}"
page.update()
output_text=ft.Text()
submit_btn=ft.ElevatedButton(text="Submit",on_click=SubmitCliked)
color_dropdown=ft.Dropdown(
width=100,
options=[
ft.dropdown.Option("Red"),
ft.dropdown.Option("Green"),
ft.dropdown.Option("Blue"),
])
page.add(color_dropdown,output_text,submit_btn)
#每隔1秒更新一次文本
t1=ft.Text()
page.add(t1)
for i in range(10):
t1.value=f"Step {i+1}"
page.update()
time.sleep(1)
for i in range(10):
page.controls.append(ft.Text(f"Line {i}"))
# if i>4:
# page.controls.pop(1)
page.update()
time.sleep(0.3)
ft.app(main)
6、例子下载
https://download.csdn.net/download/xingchengaiwei/89420589
7、运行程序
flet run main.py
flet run --web main.py