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_date と last_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 サイトの他の関連記事を参照してください。