我在 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 保持值会发生什么在编写应用程序时分配。如果一年后,有人想到昨天,他们能做到吗?如何确保参数是动态的,以便从执行时间开始计算时间?
当有疑问时,我是这样解决的:
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小编苹果为大家带来详细的解决方案。无论是连接路由器还是使用网线直连,小编将一步步指导您轻松实现有线网络连接,解决您的网络连接难题。请继...
-
play的单三分词和过去式
playing 的单三分词和过去式分别为 playing 和 played。playing 表示进行或持续的动作,用作名词、动名词或形容词。played 表示过去发生的动作,也可以用作形容词表示“被使...
-
腾讯视频怎么共享vip给好友
是的,腾讯视频 vip 会员可共享给好友,最多 5 位。具体步骤如下:打开腾讯视频 app,点击头像进入会员中心。找到“共享会员”,输入好友账号创建共享。好友确认共享后,双方均可享受 vip 权益。如...
-
脑洞大侦探独居女士如何通关 独居女士通关方法
在《脑洞大侦探》"独居女士"关卡中,一位独自生活的女士急需你的帮助!日常小困扰接踵而来,她期待着你的慧眼如炬和巧妙思维。php小编香蕉温馨提示,每个关卡都是对玩家观察力和解决问题能力的考验,不妨细细探...
-
苹果怎么去掉小红书水印
去除小红书水印的方法包括:使用在线工具(水印云、亿图图示、watermark remover)使用手机app(水印宝、背景橡皮擦、智慧橡皮擦)使用专业图像处理软件(photoshop、gimp)截图并...