合宙Air724UG LuatOS-Air LVGL API--事件

概念
LVGL 中可触发事件,用于与用户进行交互。例如一个对应对象的事件可以有:

被点击
被拖拽
数值被更改
等等
注意:多个对象可以使用同一回调函数。

事件类型
通用事件
所有对象(例如 Buttons / Labels / Sliders 等)都将接收这些通用事件,而不管它们的类型如何。

输入设备事件
当用户按下/释放对象时发送这些消息。它们不仅用于指针,还可以用于键盘,编码器和按钮输入设备。
例如,常用的事件有:

lvgl.EVENT_PRESSED – 对象象被按下时触发,每次按下时只触发一次
lvgl.EVENT_PRESSING – 对象正在被按下中,只要按下不放,就会一直被触发
lvgl.EVENT_CLICKED – 对象被点击
指针相关事件
这些事件由类似指针的输入设备(例如鼠标或触摸板)触发

lvgl.EVENT_DRAG_BEGIN – 开始拖动对象
lvgl.EVENT_DRAG_END – 拖动完成
lvgl.EVENT_DRAG_THROW_BEGIN – 拖动漂移开始时触发
按键事件
这些事件由键盘和编码器输入设备发送。

lvgl.EVENT_KEY – 按下了某个按键
lvgl.EVENT_FOCUSED – 当对象在其所在的 group 组获得焦点时触发
lvgl.EVENT_DEFOCUSED – 当对象在其所在的 group 组失去焦点时触发
一般事件
LVGL库发送的其他一般事件。

lvgl.EVENT_DELETE – 该对象正在被删除。释放相关的用户分配数据。
特殊事件
这些事件特定于特定的对象类型。

lvgl.EVENT_VALUE_CHANGED – 对象值已更改(例如,对于滑动条)
lvgl.EVENT_INSERT – 有内容插入到对象中。(通常到文本区域)
lvgl.EVENT_APPLY – 单击"确定",“应用"或类似的特定按钮。(通常来自键盘对象)
lvgl.EVENT_CANCEL – 单击"关闭”,"取消"或类似的特定按钮。(通常来自键盘对象)
lvgl.EVENT_REFRESH – 查询以刷新对象。永远不会由库发送,但可以由用户发送。
请访问特定对象类型的文档,以了解对象类型使用了哪些事件。

手动发送事件
任意事件
若要手动发送事件到对象,请使用 lvgl.event_send(obj, lvgl.EVENT_…, data) 。

刷新事件
lvgl.EVENT_REFRESH 是特殊事件,因为它旨在供用户用来通知对象刷新自身。一些例子:

通知标签根据一个或多个变量(例如当前时间)刷新其文本
语言更改时刷新标签
如果满足某些条件,请启用按钮(例如,输入正确的PIN)
如果超出限制,则向对象添加样式/从对象删除样式等
处理类似情况的最简单方法是利用以下函数:
lvgl.event_send_refresh(obj) 只是 lvgl.event_send(obj, lvgl.EVENT_REFRESH, nil) 的包装。因此,它仅向对象发送 lvgl.EVENT_REFRESH 。
lvgl.event_send_refresh_recursive(obj) 将 lvgl.EVENT_REFRESH 事件发送给对象及其所有子对象。如果将 nil 作为参数传递,则将刷新所有显示的所有对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l531798151

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值