Flet跨平台GUI

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

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为风而战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值