DatePicker
一个 Material 风格的日期选择对话框。
它被添加到 page.overlay
中,并使用其 pick_date()
方法调用。
根据 date_picker_entry_mode
的不同,它将显示日历或输入框(TextField)来选择日期。
示例
基本日期选择器
- Python
import datetime
import flet as ft
def main(page: ft.Page):
def change_date(e):
print(f"日期选择器更改,值为 {date_picker.value}")
def date_picker_dismissed(e):
print(f"日期选择器已关闭,值为 {date_picker.value}")
date_picker = ft.DatePicker(
on_change=change_date,
on_dismiss=date_picker_dismissed,
first_date=datetime.datetime(2023, 10, 1),
last_date=datetime.datetime(2024, 10, 1),
)
page.overlay.append(date_picker)
date_button = ft.ElevatedButton(
"选择日 期",
icon=ft.icons.CALENDAR_MONTH,
on_click=lambda _: date_picker.pick_date(),
)
page.add(date_button)
ft.app(target=main)
![](/img/docs/controls/datepicker/basic-datepicker.png)
属性
cancel_text
显示在取消按钮上的文本。默认值为“取消”。
confirm_text
显示在确认按 钮上的文本。默认值为“确定”。
current_date
代表今天的日期。它将在日期网格中高亮显示。
date_picker_mode
日历日期选择器的初始显示模式。
属性值为 DatePickerMode
枚举,具有以下值:
DAY
(默认)YEAR
在 DAY
模式下,显示月历。在 YEAR
模式下,显示可用年份的网格。
date_picker_entry_mode
日期选择对话框的初始日期输入模式。
属性值为 DatePickerEntryMode
枚举,具有以下值:
CALENDAR
(默认)INPUT
CALENDAR_ONLY
INPUT_ONLY
在 CALENDAR
模式下,显示日期网格,用户点击他们希望选择的日期。在 INPUT
模式下,显示 TextField
,用户输入他们希望选择的日期。
CALENDAR_ONLY
和 INPUT_ONLY
是上述模式的变体,不允许用户切换模式。
error_format_text
如果输入的日期格式不正确,TextField 下方显示的错误消息。默认值为“格式无效”。
error_invalid_text
如果日期早于 first_date
或晚于 last_date
,TextField 下方显示的错误消息。默认值为“超出范围”。
field_hint_text
在 TextField 中显示的提示文本。
默认值取决于您的语言环境的日期格式字符串。例如,en_US 的默认值为“mm/dd/yyyy”。
field_label_text
在 TextField 中显示的标签文本。默认值为“输入日期”。
first_date
用户可以选择的最早日期。默认值为1900年1月1日。
help_text
在标题顶部显示的文本。
用于向用户指示他们正在选择的日期。默认值为“选择日期”。
keyboard_type
用于编辑文本的键盘类型。属性值为 KeyboardType
枚举。
默认为 DATETIME
。
last_date
用户可以选择的最晚日期。默认值为2050年1月1日。
switch_to_calendar_icon
当 DatePickerEntryMode
为 DatePickerEntryMode.INPUT
时,显示在对话框角落的图标名称。点击图标会将 DatePickerEntryMode
更改为 DatePickerEntryMode.CALENDAR
。如果为 null,则使用 ft.icons.CALENDAR_TODAY
。
switch_to_input_icon
当 DatePickerEntryMode
为 DatePickerEntryMode.CALENDAR
时,显示在对话框角落的图标名称。点击图标会将 DatePickerEntryMode
更改为 DatePickerEntryMode.INPUT
。如果为 null,则使用 ft.icons.EDIT_OUTLINED
。
value
选择器应显示的已选日期。默认值等于 current_date
。
方法
pick_date()
打开日期选择对话框。
事件
on_change
当用户点击确认按钮时触发。value
属性会更新为选定的日期。e.data
也包含选定的日期。
on_dismiss
当通过点击取消按钮或在日期选择对话框外部关闭对话框时触发。
on_entry_mode_change
当 date_picker_entry_mode
更改时触发。事件处理程序 (e
) 的类型为 DatePickerEntryModeChangeEvent
,新条目模式可以从 e.entry_mode
(类型为 DatePickerEntryMode
枚举的值)中获取。