Bỏ qua để đến nội dung

🚀 Ứng dụng đầu tiên

Hãy tạo ứng dụng Flet đầu tiên trong 15 phút! 🚀

Xây dựng ứng dụng “Hello World” với:

  • Text hiển thị lời chào
  • Button thay đổi nội dung
  1. Mở PyCharm
  2. Chọn File → New Project
  3. Cấu hình:
    • Location: Chọn thư mục, ví dụ ~/Projects/my-flet-app
    • Python Interpreter: Chọn New environment using Virtualenv
    • Base interpreter: Python 3.10 trở lên
  4. Click Create

Mở Terminal trong PyCharm (View → Tool Windows → Terminal) và chạy:

Terminal window
pip install 'flet[all]'

Chờ cài đặt hoàn tất.

  1. Click chuột phải vào thư mục dự án trong panel Project
  2. Chọn New → Python File
  3. Đặt tên: main
  4. Nhấn Enter

Trong file main.py, nhập code sau:

import flet as ft
def main(page: ft.Page):
page.title = "Ứng dụng đầu tiên"
page.vertical_alignment = ft.MainAxisAlignment.CENTER
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
page.add(
ft.Text("Xin chào, Flet! 👋", size=30, weight=ft.FontWeight.BOLD)
)
ft.run(main)
  1. Click chuột phải vào file main.py
  2. Chọn Run ‘main’

Hoặc nhấn Shift + F10 (Windows/Linux) hoặc Ctrl + R (macOS).

Terminal window
flet run main.py

Kết quả: Cửa sổ ứng dụng với dòng chữ “Xin chào, Flet! 👋” ở giữa màn hình.

flowchart TD
subgraph Window["Ứng dụng đầu tiên"]
T["Xin chào, Flet! 👋"]
end
style Window fill:#f5f5f5
style T fill:#e3f2fd

🔧 Bước 4: Thêm tương tác với Declarative UI

Phần tiêu đề “🔧 Bước 4: Thêm tương tác với Declarative UI”

Thay thế nội dung main.py với code sử dụng Componentuse_state:

import flet as ft
@ft.component
def Greeting():
# State: lời chào hiện tại
message, set_message = ft.use_state("Xin chào! 👋")
def change_greeting(_):
set_message("Chào mừng đến với Flet! 🎉")
return ft.Column([
ft.Text(message, size=30, weight=ft.FontWeight.BOLD),
ft.ElevatedButton("Nhấn vào đây!", on_click=change_greeting),
], horizontal_alignment=ft.CrossAxisAlignment.CENTER, spacing=20)
def main(page: ft.Page):
page.title = "Ứng dụng đầu tiên"
page.vertical_alignment = ft.MainAxisAlignment.CENTER
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
page.add(Greeting())
ft.run(main)

Lưu file (Ctrl+S) và chạy lại. Thử click button!

Kết quả sau khi click:

flowchart TD
subgraph Window["Ứng dụng đầu tiên"]
T["🎉 Chào mừng đến với Flet! 🎉"]
B["[ Nhấn vào đây! ]"]
end
T --> B
style Window fill:#f5f5f5
style T fill:#c8e6c9

[!TIP] Declarative UI với @ft.componentft.use_state():

  • Không cần gọi page.update() thủ công
  • UI tự động cập nhật khi state thay đổi

Trong Terminal của PyCharm:

Terminal window
flet run --web main.py

Trình duyệt tự động mở tại http://localhost:8000 - cùng code, chạy trên web!

Code Mô tả
import flet as ft Import thư viện Flet
@ft.component Decorator tạo component
ft.use_state(value) Hook quản lý state
set_message(...) Hàm cập nhật state
ft.run(main) Khởi chạy ứng dụng

Trong PyCharm, thử tự mình:

  1. Thêm màu cho text: ft.Text(..., color=ft.Colors.BLUE)
  2. Thêm nhiều button với message khác nhau
  3. Thêm counter (mỗi lần click tăng số)

Gợi ý counter:

@ft.component
def Counter():
count, set_count = ft.use_state(0)
return ft.Row([
ft.IconButton(ft.Icons.REMOVE, on_click=lambda _: set_count(count - 1)),
ft.Text(str(count), size=30),
ft.IconButton(ft.Icons.ADD, on_click=lambda _: set_count(count + 1)),
], alignment=ft.MainAxisAlignment.CENTER)

Tuyệt vời! Tiếp tục với Cấu trúc ứng dụng Flet để hiểu sâu hơn.