
From Heathkit vacuum tubes to first-gen Arduino LEDs, electronics has been my lifelong passion. Though not my profession, I've journeyed from analog circuits to microcontrollers, hacking Arduinos since they appeared. This blog shares that journey—the successes and struggles. If you're a fellow hobbyist, a curious beginner, or just love to tinker, you're in the right place. Welcome!
Saturday, August 12, 2023
FLET: A python GUI based on Flutter
I am always on the lookout for new (easier) ways to create GUIs for python. Recently I ran across the FLET. Also available on github.
Their description is
The fastest way to build Flutter apps in Python
Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required.
As an experiment I decided to create a simple login form.
import flet as ft
def main(page: ft.Page):
page.title = "Login"
page.window_height = 200
page.window_width = 500
page.window_always_on_top = True
def cancel_click(e):
page.window_destroy()
def login_click(e):
if txt_user.value == "admin" and txt_pwd.value == "admin":
dlg.content = ft.Text("Login Successful")
else:
dlg.content = ft.Text("Login failed")
dlg.modal = False
dlg.open = True
dlg.update()
page.update()
dlg = ft.AlertDialog(title=ft.Text("Login"), content=ft.Text("---"))
txt_user = ft.TextField(value = "", label="User ID")
txt_pwd = ft.TextField(value = "", password=True, can_reveal_password=True,
label="Password")
btn_cancel = ft.FilledButton(text="Cancel", on_click=cancel_click)
btn_login = ft.FilledButton(text="Login", on_click=login_click)
action_row = ft.Row(controls=[btn_cancel, btn_login])
page.add(txt_user, txt_pwd, action_row, dlg)
page.window_center()
ft.app(target=main)
This results in the following window
A jupyter notebook is here.
Subscribe to:
Posts (Atom)