跳到主要内容

CupertinoDatePicker

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

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

示例

在线示例

基本示例

import flet as ft

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

page.add(
ft.OutlinedButton(
"显示 CupertinoDatePicker",
on_click=lambda e: page.show_bottom_sheet(
ft.CupertinoBottomSheet(
ft.CupertinoDatePicker(
on_change=lambda e: print(e.data),
date_picker_mode=ft.CupertinoDatePickerMode.DATE_AND_TIME
),
height=216,
padding=ft.padding.only(top=6),
)
),
)
)

ft.app(main)

属性

bgcolor

日期选择器的背景颜色

current_date

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

date_order

此选择器内的列显示顺序。属性值为 CupertinoDatePickerDateOrder 枚举,具有以下值:

  • DAY_MONTH_YEAR
  • MONTH_YEAR_DAY
  • YEAR_MONTH_DAY
  • YEAR_DAY_MONTH
备注

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

date_picker_mode

日期选择器的模式。属性值为 CupertinoDatePickerMode 枚举,具有以下值:

  • DATE - 显示日期为月份(全拼)、月份日和年份
  • DATE_AND_TIME(默认)- 显示日期为星期几、月份、月份日以及时间(小时、分钟和(可选)AM/PM)。仅当 use_24h_format=False 时显示 AM/PM。
  • MONTH_YEAR - 显示日期为月份(全拼)和年份
  • TIME - 显示日期为小时、分钟和(可选)AM/PM。仅当 use_24h_format=False 时显示 AM/PM。

first_date

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

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

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

item_extent

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

last_date

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

当不为 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 范围内,则不会触发。