Skip to content

Esercizi extra di ripasso — Flet

Questi esercizi sono pensati per essere svolti IN ORDINE. Ogni esercizio introduce un concetto nuovo o rinforza uno già visto. Sono più brevi degli esercizi a fine lezione — perfetti per iniziare la lezione come “riscaldamento”.


Crea un’app che mostra 5 rettangoli colorati in una riga, ognuno con il nome del colore scritto sopra.

Requisiti: Container, Row, Text, bgcolor

Suggerimento:

ft.Container(
content=ft.Text("Rosso"),
bgcolor="red",
width=100, height=100,
border_radius=10,
alignment=ft.alignment.center,
)

Crea un contatore con 3 bottoni: “+1”, “+5”, “Reset”.

Requisiti: Text, ElevatedButton, eventi, nonlocal


Crea un input dove scrivere un nome e un bottone “Aggiungi”. I nomi appaiono in una lista sotto. Se il nome è vuoto, mostra un errore.

Requisiti: TextField, ListView, validazione base


Crea un campo password (nascosto) e un testo che mostra “Debole” (rossa), “Media” (gialla) o “Forte” (verde) in base alla lunghezza della password.

LunghezzaGiudizio
< 6Debole ❌
6-10Media ⚠️
> 10Forte ✅

Requisiti: TextField(password=True), on_change, logica condizionale


Crea una card con un testo. Quando la clicchi, il testo cambia da “Non letto” a “Letto” e lo sfondo diventa verde chiaro.

Requisiti: Container(on_click=...), stato, bgcolor


Crea una griglia (GridView) di colori. Quando clicchi su un colore, viene aggiunto un nuovo colore casuale alla griglia.

Requisiti: GridView, random, eventi

import random
colori = ["red", "blue", "green", "amber", "purple"]
colore_casuale = random.choice(colori)

Crea un timer per la tecnica del pomodoro: 25 minuti di lavoro, poi 5 di pausa.

Requisiti: threading, time, aggiornamento UI

Bonus: Mostra il messaggio ”🍅 Lavoro!” o ”☕ Pausa!” a seconda della fase.


Crea un’app che permette di scrivere note. Ogni nota ha titolo, testo e data automatica. Mostra le note in ordine (dalla più recente).

Requisiti: JSON persistenza, datetime.date.today()


Partendo dalla rubrica o todo list, aggiungi un campo di ricerca che filtra gli elementi mentre l’utente digita.

Requisiti: on_change, filtro su lista, ricostruisci_ui()

Suggerimento:

def cerca(e):
termine = e.control.value.lower()
filtrati = [el for el in dati if termine in el["testo"].lower()]
ricostruisci_ui_con(filtrati)

Crea un’app con 3 bottoni: “Tema chiaro”, “Tema scuro”, “Tema arcobaleno” (il tema arcobaleno cambia il primary in un colore casuale ogni volta).

Requisiti: page.theme_mode, page.theme, random


Un’app con una domanda e 4 opzioni di risposta (radio button). Quando voti, mostra un grafico a barre con i risultati usando ft.Column con altezze proporzionali.

Requisiti: RadioGroup, Radio, proporzioni, JSON


Usa un’API gratuita (es. https://api.exchangerate-api.com/v4/latest/EUR) per convertire tra EUR, USD e GBP.

Requisiti: API HTTP, dropdown per selezionare valuta


Partendo dall’app meteo della Lezione 11, aggiungi:

  1. Bottone “❤️ Aggiungi ai preferiti” che salva la città
  2. Schermata “Preferiti” con lista città salvate
  3. Click sulla città preferita → mostra subito il meteo

Requisiti: Navigazione, JSON persistenza, API


Il computer sceglie un numero tra 1 e 100. L’utente prova a indovinare. L’app dice “Troppo alto” o “Troppo basso”. Conta i tentativi.

Requisiti: TextField, feedback, contatore tentativi


Crea una lista di elementi che possono essere riordinati tramite bottoni ”↑” e ”↓” (sposta elemento di una posizione).

Requisiti: Liste, bottoni, spostamento indici

def sposta_su(idx):
if idx > 0:
dati[idx], dati[idx-1] = dati[idx-1], dati[idx]
salva_dati(dati)
ricostruisci_ui()

Aggiungi una schermata “Statistiche” alla tua app che mostra:

  • Quanti elementi hai aggiunto oggi
  • Quanti in totale
  • Media elementi/giorno

Aggiungi un bottone “Esporta” che salva i dati anche in formato leggibile (es. .txt con formattazione migliore).

Usa datetime per cambiare tema automaticamente dopo le 20:00 (tema scuro) e prima delle 7:00 (tema chiaro).