跳到主要内容

CupertinoDatePicker

一个 iOS 风格的日期和时间选择对话框。

有关可用模式的详细信息,请参见 date_picker_mode 属性。

要打开此控件,只需调用 page.open() 辅助方法。

示例

在线示例

基本示例

import flet as ft


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

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

cupertino_date_picker = ft.CupertinoDatePicker(
date_picker_mode=ft.CupertinoDatePickerMode.DATE_AND_TIME,
on_change=handle_date_change,
)
page.add(
ft.CupertinoFilledButton(
"Open CupertinoDatePicker",
on_click=lambda e: page.open(
ft.CupertinoBottomSheet(
cupertino_date_picker,
height=216,
padding=ft.padding.only(top=6),
)
),
)
)


ft.app(main)

属性

bgcolor

日期选择器的背景颜色

current_date

表示今天的日期。它将在日期网格中突出显示。

date_order

此选择器内部列的显示顺序。

值的类型为CupertinoDatePickerDateOrder

备注

列的最终显示顺序还受 date_picker_mode 的影响。例如,当使用 date_picker_mode=CupertinoDatePickerMode.MONTH_YEAR 时,CupertinoDatePickerDateOrder.DAY_MONTH_YEARCupertinoDatePickerDateOrder.MONTH_DAY_YEAR 都将导致月|年的顺序。

date_picker_mode

日期选择器的模式。

值的类型为CupertinoDatePickerMode,默认值为 CupertinoDatePickerMode.DATE_AND_TIME

first_date

用户可以选择的最早日期。默认为 None - 无限制。

当不为 None 时,仍然可以将选择器滚动到早于 first_date 的日期,但 on_change 不会被调用。一旦放手,选择器将滚动回 first_date

CupertinoDatePickerMode.TIME 模式下,如果通过将特定时间与 initialDateTime 的日期部分结合生成的日期时间早于 last_date,则时间变得不可选择。因此,通常需要将 first_date 设置为与 initialDateTime 相同日期的日期时间。

item_extent

所有子项的统一高度。默认为 32

last_date

用户可以选择的最晚日期。

当不为 None 时,仍然可以将选择器滚动到晚于 last_date 的日期,但 on_change 不会被调用。一旦放手,选择器将滚动回 last_date

CupertinoDatePickerMode.TIME 模式下,如果通过将特定时间与 initialDateTime 的日期部分结合生成的日期时间晚于 last_date,则时间变得不可选择。因此,通常需要将 last_date 设置为与 initialDateTime 相同日期的日期时间。

max_year

CupertinoDatePickerMode.DATE 模式下,选择器可以滚动到的最大年份。默认为 1。默认为 None - 无限制。

min_year

CupertinoDatePickerMode.DATE 模式下,选择器可以滚动到的最小年份。默认为 1

min_interval

分钟微调器的粒度(如果在当前 date_picker_mode 中显示)。必须是 60 的整数倍。默认为 1

show_day_of_week

是否显示星期几。默认为 False

use_24h_format

如果为 True,则使用 24 小时制;否则使用 12 小时制。默认为 False

value

选择器的初始日期和/或时间。必须符合 first_datelast_datemin_yearmax_year 设置的区间,否则将引发 ValueError

默认为当前日期和时间。

事件

on_change

当所选日期和/或时间更改时触发。如果新选择的值无效,或者不在 first_datelast_date 范围内,则不会触发。