Задать вопрос
@nmikkoo

Python Flet — как записать код во вкладку?

Я только учусь программировать, в школе нужно сделать приложение, помогите. В библиотеке flet есть элемент Tabs(вкладки). Как сделать так, чтобы при нажатии на вкладку срабатывал готовый код? То есть я нажимаю на вкладку и у меня работает готовый код с приложением? Проще говоря, как несколько кодов(приложений) соединить в одно, используя вкладки?
Пример базового кода вкладок
import flet as ft

def main(page: ft.Page):


    t = ft.Tabs(
        selected_index=1,
        animation_duration=300,
        tabs=[
            ft.Tab(
                icon=ft.Icons.ADD_CHART
            ),
            ft.Tab(
                tab_content=ft.Icon(ft.Icons.SEARCH),
                content=ft.Text("This is Tab 2"),
            ),
            ft.Tab(
                icon=ft.Icons.SETTINGS,
                content=ft.Text("This is Tab 3"),
            ),
        ],
        expand=1,
    )

    page.add(t)

ft.app(main)
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Читаем документацию. Там прописано, что у контрола Tabs есть два события: on_click для щелчка по вкладке, и on_change для перехода между вкладками (потому что вкладки можно переключать не только мышкой).
Полагаю, что нужно передать в конструктор ft.Tabs() соответствующий параметр с функцией-обработчиком события примерно такого вида:
def on_tab_changed(e):
    current_tab = t.selected_index  # см. свойство https://flet.dev/docs/controls/tabs#selected_index
    # далее в зависимости от current_tab выполняешь тот или иной код
    # это может выглядеть как-то так:
    if current_tab == 0:
        tab_a_code()
    elif current_tab == 1:
        ...

def tab_a_code():
    ...  # тут что-то делаешь при открытии первой вкладки


А вот как засунуть целую работающую программу в функцию - это, извини, уже совсем отедльный вопрос...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы