Flet での DatePicker の処理

Patricia Arquette
リリース: 2024-09-26 08:41:42
オリジナル
326 人が閲覧しました

Manejo de DatePicker en Flet

Flet での私の最後のプロジェクトでは、DatePicker の実装が必要でした。 Flet の公式ドキュメントで提供されている例を見てみましょう。

import datetime
import flet as ft


def main(page: ft.Page):
    page.horizontal_alignment = ft.CrossAxisAlignment.CENTER

    def handle_change(e):
        page.add(ft.Text(f"Date changed: {e.control.value.strftime('%Y-%m-%d')}"))

    def handle_dismissal(e):
        page.add(ft.Text(f"DatePicker dismissed"))

    page.add(
        ft.ElevatedButton(
            "Pick date",
            icon=ft.icons.CALENDAR_MONTH,
            on_click=lambda e: page.open(
                ft.DatePicker(
                    first_date=datetime.datetime(year=2023, month=10, day=1),
                    last_date=datetime.datetime(year=2024, month=10, day=1),
                    on_change=handle_change,
                    on_dismiss=handle_dismissal,
                )
            ),
        )
    )

ft.app(main)
ログイン後にコピー

ドキュメントでは、first_date プロパティと last_date プロパティがアプリケーションの実行ごとにデフォルトで更新されるかどうかが明確になっていません。アプリをコンパイルし、first_date パラメーターと last_date パラメーターが前のコードと同様に維持されていると仮定します。これにより、将来の有効な日付を選択するときにエラーが発生する可能性がありますか?

私のアプリは、2 つの特定の日付の間で X (Twitter) をスクレイピングすることを目的としています。 (すでにコンパイルされ実行可能なアプリとして) 直感的で使いやすいものにしたいと考えたとき、コードを確認しながら、パラメータ first_datelast_date の値が維持されたらどうなるだろうかと自問しました。アプリの作成時に割り当てられます。 1年以内に誰かが昨日までをスクレイピングしたいと思ったら、それができるでしょうか?タイミングが実行時間から計算されるようにパラメータが動的であることをどのようにして確保できるでしょうか?

疑問がある場合は、次の方法で解決しました:

import datetime
import flet as ft

# Crear una variable para la fecha actual de la ejecución
today = datetime.datetime.now()

def main(page: ft.Page):
    page.horizontal_alignment = ft.CrossAxisAlignment.CENTER

    def handle_change(e):
        page.add(ft.Text(f"Date changed: {e.control.value.strftime('%Y-%m-%d')}"))

    def handle_dismissal(e):
        page.add(ft.Text(f"DatePicker dismissed"))

    page.add(
        ft.ElevatedButton(
            "Pick date",
            icon=ft.icons.CALENDAR_MONTH,
            on_click=lambda e: page.open(
                ft.DatePicker(

                    # Configuramos las variables para que un calendario válido desde hace un año a hoy y durante un año a futuro
                    first_date=datetime.datetime(year=today.year - 1, month=today.month, day=today.day),
                    last_date=datetime.datetime(year=today.year + 1, month=today.month, day=today.day),

                    on_change=handle_change,
                    on_dismiss=handle_dismissal,
                )
            ),
        )
    )

ft.app(main)
ログイン後にコピー

このようにして、アプリケーションが実行される瞬間 (コンパイルされているかどうか) に関係なく、カレンダー内の選択可能な日付には、実行自体を初期パラメーターとして使用する構成可能な一時レコードが含まれるようになります。

このアプローチは、将来の日付を選択しても意味がないため、 のみを選択 できるようにするなど、選択可能な日付に制限を必要とする特定の機能を実装する場合にも役立ちます。

たとえば、私のスクレイピング アプリで、タスクが過去から情報を収集することであるときに、将来の日付を設定できるようにすることにどのような意味がありますか?

以上がFlet での DatePicker の処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート