FLET KUTUBXONASI
September 12, 2025

Flet kutubxonasi

Flet — bu Python uchun cross-platform GUI (grafik interfeys) kutubxonasi bo‘lib, Flutter asosida qurilgan, web, desktop va mobil ilovalarni tezda yaratishga mo‘ljallangan. Quyida Flet kutubxonasining asosiy tushunchalari, metodlari va funksiyalari (kontrolleri, sahifa interfeysi, eventlar, layout’lar va boshqalar) to‘liqroq ko‘rib chiqamiz.


1. Asosiy tushunchalar

Atama

Ma’nosi / vazifasi

Control

Flet’ning barcha UI elementlari — tugmalar, matn, kiritish maydonlari va boshqalar — control sinfidan meros olinadi.

Page

Ilovaning asosiy oynasi / sahifasi — bu yerda control’lar joylanadi. main(page: Page) tipik boshlang‘ich funksiya. Flet+1

ft.app(...)

Ilovani ishga tushuruvchi funksiya. target=main orqali asosiy funksiya beriladi. Flet+1

controls

Layouth va tashkiliy eltish uchun control’lar ro‘yxati — masalan, Column, Row, Stack kabi container control’lar. Flet+2Medium+2

Events / Callback’lar

Masalan, tugma bosilganda, matn maydonidagi o‘zgarishda — on_click, on_change, va boshqalar. Callback funksiyalar odatda bir parametr (event obyekti, e) oladi. Stack Overflow+2Flet+2


2. Layout va joylashuv (Layout & Positioning)

Flet’da elementlar sahifaga qanday joylanadi, tartiblanishi va tarqoq ko‘rinishi uchun bir qancha kontrollerlar va parametrlar mavjud:

Kontrol / funksiya

Vazifasi

Row

Kontrollerini gorizontal yo‘nalishda joylashtiradi (chapdan o‘ngga). Flet

Column

Kontrollerini vertikal yo‘nalishda joylashtiradi (yuqoridan pastga). Flet

Stack

Elementlar ustma-ust (layered) tarzda joylana oladi — masalan, fon rasmi, ustiga matn va boshqalar. LabDeck

Positioned

Stack ichida joylashishni (koordinatalar, top/left va hk) belgilash uchun ishlatiladi. LabDeck

expand parametri

Masalan, TextField(expand=True) yoki boshqa kontrollerlarda ishlatiladi, bo‘sh joyni kengaytirib olish uchun. Flet

Alignments

horizontal_alignment, vertical_alignment, alignment kabi parametrlar bilan container ichida joylashuv, yo‘nalish sozlanadi. Flet+1


3. Asosiy kontrollerlar (Controls)

Flet da turli UI elementlar mavjud. Ba’zilari:

Kontrol

Tavsifi

Text

Oddiy matn ko‘rsatadi.

TextField

Matn kiritish maydoni.

Checkbox

On/off holatini ifodalaydi.

Radio, Switch

Tanlash uchun boshqa variantlar.

Button, ElevatedButton, FilledButton, OutlinedButton

Turli ko‘rinishdagi tugmalar.

IconButton

Ikonka bilan tugma.

FloatingActionButton

Materyal dizaynidagi “floating” tugma.

Tabs, Tab

Sahifa ichida tabs navigatsiyasi.

Dialog, AlertDialog, BottomSheet

Foydalanuvchi bilan dialog oynalari, bildirishnomalar.

AppBar

Sahifaning yuqori qismi (title bar, action ikonalar bilan).

DataTable, DataRow, DataColumn, DataCell

Jadval ko‘rinishida ma’lumotlarni chiqarish.


4. Sahifa (Page) bilan ishlash

Page obyekti Flet ilovasining markaziy obyekti hisoblanadi:

Xususiyat / metod

Vazifasi

page.title

Oyna nomini o‘rnatadi. Flet+1

page.add(...)

Sahifaga control qo‘shadi. Flet+1

page.update()

UI ni yangilash — control’larda o‘zgartirishlar qilinsa, ularni ekranga aks ettirish. Flet+1

page.horizontal_alignment, page.vertical_alignment

Sahifadagi kontentning ikkala yo‘nalishdagi tartibi. Flet

page.run_task(handler, *args)

Async funksiya yoki kod qismini fon vazifasida bajarish imkoniyati. Python in Plain English

page.run_thread(handler, *args)

Sync vazifani alohida threadda ishga tushirish. Python in Plain English


5. Eventlar va callback’lar

Flet ilovalarida foydalanuvchi bilan interaktivlik uchun callback’lar ishlatiladi:

Xususiyat / metod

Tavsifi

on_click, on_change, on_submit va hokazo

Kontrollerga tegishli hodisalar — tugma bosilganda, qiymat o‘zgarganda va boshqalar. Callback funksiyalar odatda event obyekti (e) oladi. Flet+1

e.control, e.data, e.page, e.name

Event objekti orqali ushbu ma’lumotlarga kirish; masalan, qaysi kontrol bosilgan, qo‘shimcha ma’lumot, sahifa va event nomi. Stack Overflow


6. Sinxron / asinxron kod

Flet 0.21 versiyasidan boshlab asinxronlik va sinxron kodni aralashtirish imkoniyati yaxshilandi. Python in Plain English

  • on_click kabi event handler’lar sinxron yoki asinxron bo‘lishi mumkin.
  • page.run_task(...) yordamida async funksiyalar chaqirilishi mumkin.
  • page.run_thread(...) yordamida sync vazifalar alohida thread’da bajarilishi mumkin. Python in Plain English

7. Hayot sikli va adaptive / platformga moslik

  • Ilovaning turli holatlari (masalan, ko‘rinishi, yashiringanligi / tiklanishi) uchun on_app_lifecycle_state_change kabi eventlar bor. Python in Plain English
  • Kontrollerlarning adaptive xususiyati: agar bir nazarda material yoki Cupertino (iOS) ko‘rinishi kerak bo‘lsa — platformaga qarab mos ko‘rinishni tanlash. Python in Plain English


Flet kutubxonasi juda keng va ko‘p widgetlar, metodlar, funksiyalarni o‘z ichiga oladi, ularni to‘liq bitta javobga sig‘dirish qiyin. Lekin quyida Fletda eng muhim va ko‘p ishlatiladigan metodlar va funksiyalarni to‘liq ro‘yxatda taqdim qilaman.


FLET KUTUBXONASI — TO‘LIQ ASOSIY METODLAR VA FUNKSIYALAR RO‘YXATI


1. Dastur ishga tushirish va boshqarish

Funksiya / Metod Tavsifi ft.app(target=func) Dastur ishga tushadi, func — asosiy funksiya (target). page.go(route) Sahifani boshqa route (manzil) ga o‘tkazadi. page.update() Sahifani yangilaydi. page.add(*widgets) Sahifaga widget qo‘shadi. page.remove(widget) Sahifadagi widgetni olib tashlaydi. page.clean() Sahifadagi barcha widgetlarni tozalaydi.


2. Widgetlar bilan ishlash (asosiy metodlar)

Metod Tavsifi widget.update() Widgetni yangilaydi, o‘zgarishlarni ekranga chiqaradi. widget.focus() Widgetga fokus beradi (matn maydonlari uchun). widget.clear() Widget qiymatini tozalaydi (agar mavjud bo‘lsa). container.add(*widgets) Kontainerga bir nechta widget qo‘shadi. container.remove(widget) Kontainerdan widget olib tashlaydi. container.clear() Kontainer ichidagi barcha widgetlarni olib tashlaydi.


3. Asosiy widgetlar va ularning atributlari/metodlari

Widget Atribut / Metod Tavsifi Text value Ko‘rsatiladigan matn. update() Matnni yangilaydi. ElevatedButton text Tugma ustidagi matn. on_click Tugma bosilganda chaqiriladigan funksiya. TextField value Kiruvchi matn qiymati. on_change Matn o‘zgarganda chaqiriladigan funksiya. focus() Fokusni ushbu maydonga beradi. Checkbox value Belgi qo‘yilgan yoki yo‘qligini bildiradi. on_change Holat o‘zgarganda chaqiriladigan funksiya. Slider value Joriy qiymat. on_change Qiymat o‘zgarganda chaqiriladigan funksiya. Dropdown options Tanlovlar ro‘yxati. value Tanlangan qiymat. on_change Tanlov o‘zgarganda chaqiriladigan funksiya. Image src Rasm manzili.


4. Layout widgetlari

Widget Tavsifi Column Widgetlarni ustun (vertikal) tarzda joylashtiradi. Row Widgetlarni qator (gorizontal) tarzda joylashtiradi. Container Ichida bitta widget saqlaydi, ko‘rinish va o‘lchamlarni boshqaradi.


5. Ko‘p ishlatiladigan hodisalar (eventlar)

Hodisa Tavsifi on_click Tugma yoki boshqa element bosilganda chaqiriladi. on_change Input yoki tanlov qiymati o‘zgarganda chaqiriladi. on_submit Matn maydonida Enter bosilganda chaqiriladi.


6. Qisqacha misollar

Tugma bosilganda matnni o‘zgartirish

import flet as ft

def main(page: ft.Page):
    txt = ft.Text("Salom, dunyo!")
    btn = ft.ElevatedButton(text="Bos", on_click=lambda e: txt.update(value="Tugma bosildi!"))
    page.add(txt, btn)

ft.app(target=main)

TextFieldga matn kirgizib, darhol ko‘rsatish

import flet as ft

def main(page: ft.Page):
    txt = ft.Text()
    input = ft.TextField(on_change=lambda e: txt.update(value=e.control.value))
    page.add(input, txt)

ft.app(target=main)

Layout: Column va Row misoli

import flet as ft

def main(page: ft.Page):
    col = ft.Column([
        ft.Text("Ustun ichidagi matn 1"),
        ft.Text("Ustun ichidagi matn 2"),
        ft.Row([
            ft.Text("Qator ichidagi matn A"),
            ft.Text("Qator ichidagi matn B")
        ])
    ])
    page.add(col)

ft.app(target=main)

Qo‘shimcha resurslar


Agar xohlasangiz, men sizga kerakli widget yoki metod bo‘yicha yanada chuqurroq misollar va tushuntirishlar bera olaman. Sizga aynan qaysi jihatlari qiziq?