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 매개변수가 이전 코드와 같이 유지된다고 가정해 보겠습니다. 앞으로 유효한 날짜를 선택할 때 오류가 발생할 수 있나요?
내 앱은 두 특정 날짜 사이에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!