Lua 应用开发LVGL控件

AnalogTime

指针时钟控件

继承自 Object

⚠️ 该控件在模拟器的 debug.getregistry["widgets"] 中未注册,但在设备表盘源码(corona.lua)中有实际使用。可能仅在应用上下文中可用。

创建

local analogTime = root:AnalogTime {
  hands = {
    second = "S:/watchface/lua/corona/image/sec.bin",
  },
  period = 33,
  w = 466, h = 466,
  align = lvgl.ALIGN.CENTER,
}

属性

属性类型说明验证状态
handstable指针图像:{ hour, minute, second }✅ 设备验证
pivottable指针旋转轴心:{ second = {x, y} }✅ 设备验证
fake_timetable模拟时间:{ second = n }✅ 设备验证
periodnumber刷新周期(毫秒)✅ 设备验证

方法

方法说明验证状态
pause暂停时钟走时✅ 设备验证
resume恢复时钟走时✅ 设备验证
set(tbl)批量设置属性—

示例

local root = lvgl.Object(nil, {
  w = 466, h = 466, bg_opa = 0, border_width = 0,
})

local analogTime = root:AnalogTime {
  hands = { second = "S:/watchface/lua/corona/image/sec.bin" },
  period = 33,
  w = 466, h = 466,
  align = lvgl.ALIGN.CENTER,
}

analogTime:set { pivot = { second = { 16, 232 } } }

function pageOnPause
  analogTime:pause
end

function pageOnResume
  analogTime:resume
end

社区补充(洛汐文档库)

洛汐文档库示例:

local clock = root:AnalogTime {
  hands = { second = image("second.bin") },
  period = 33,
  w = 466, h = 466,
  align = lvgl.ALIGN.CENTER,
}

clock:set { pivot = { second = { 16, 232 } } }
clock:set { fake_time = { second = 30 } }
clock:pause
clock:resume

属性:hands.hour/minute/second(时/分/秒三根指针图片)、pivot(各指针旋转轴心)、period(刷新周期)、fake_time(模拟时间)。示例中 image("second.bin") 为洛汐文档使用的图片加载辅助写法,亦可直接传资源路径字符串。

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

大纲