CupertinoDatePicker
一个 iOS 风格的日期和时间选择对话框。
有关可用模式的详细信息,请参见 date_picker_mode
属性。
要打开此控件,只需调用 page.open()
辅助方法。
示例
基本示例
- Python
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_YEAR
和 CupertinoDatePickerDateOrder.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_date
、last_date
、min_year
和 max_year
设置的区间,否则将引发 ValueError
。
默认为当前日期和时间。
事件
on_change
当所选日期和/或时间更改时触发。如果新选择的值无效,或者不在 first_date
和 last_date
范围内,则不会触发。