Lua 应用开发LVGL控件

Calendar

日历控件

继承自 Object

创建

local cal = parent:Calendar {
  w = 220, h = 220,
  today  = { year = 2025, month = 11, day = 11 },
  showed = { year = 2025, month = 11 },
}

属性

属性类型说明
today{ year, month, day }今天日期(用于高亮)
showed{ year, month }当前显示的年月

方法

方法说明
set(tbl)批量设置属性(today, showed)
get_today返回 { year, month, day }
get_showed返回 { year, month }
get_pressed返回最近按下的日期 { year, month, day }
get_btnm返回内部 ButtonMatrix 子控件
Arrow(parent?, tbl?)创建箭头导航头部
Dropdown(parent?, tbl?)创建下拉选择头部

示例

local cal = lvgl.Calendar(nil, {
  w = 220, h = 220,
  today  = { year = 2025, month = 12, day = 1 },
  showed = { year = 2025, month = 12 },
})

cal:onClicked(function(e)
  local d = cal:get_pressed
  if d then
    print(("%04d-%02d-%02d"):format(d.year, d.month, d.day))
  end
end)

local header = cal:Arrow(nil, { align = lvgl.ALIGN.OUT_TOP_MID })

社区补充(洛汐文档库)

洛汐文档库记录的 Calendar 以日期属性(today、showed)为主,专用方法为 get_today、get_showed、get_pressed、get_btnm(均见上),无其他专用 API。

参考来源:官方 docs-lua / 洛汐文档库

大纲