You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kivy如何在Spinner(下拉框)中添加自动更新的动态日期选项

Kivy Spinner 动态生成近11天日期选项实现

实现逻辑

  • 导入Python标准库datetime的date和timedelta处理日期
  • 在主屏幕加载完成时自动生成从当日起往后10天共11个日期的列表
  • 直接将生成的列表赋值给Spinner的values属性,实现自动更新

完整修改后代码

Python 代码

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen,ScreenManager
# 导入日期处理模块
from datetime import date, timedelta


class Main(Screen):
    # 屏幕进入时触发执行日期生成逻辑
    def on_enter(self):
        # 生成日期列表
        today = date.today()
        date_options = []
        for i in range(11):
            target_date = today + timedelta(days=i)
            # 按 日/月/年 格式拼接,和需求示例格式完全一致
            date_options.append(f"{target_date.day}/{target_date.month}/{target_date.year}")
        # 赋值给Spinner的values属性
        self.ids.date.values = date_options

class Manager(ScreenManager):
    pass

kv = Builder.load_file("test1.kv")
screen = Manager()
screen.add_widget(Main(name="main"))

class Test(App):
    def build(self):
        return screen

Test().run()

KV 代码

<Main>:
    name: "main"
    Spinner:
        id: date
        text: "Select Date"
        # 移除原硬编码的values,改为动态生成
        size_hint: (.3,.1)
        pos_hint: {"center_x":.5,"center_y":.5}
        background_color: "#FFFFFF"
        background_normal: ""
        color: "#000000"

效果说明

每次打开应用进入主屏幕时,都会自动重新计算最新的日期列表,不需要手动修改硬编码的选项,完全符合需求的日期范围和格式要求。

内容的提问来源于stack exchange,提问作者Zayn Naz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:00:02