合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button)

这篇具有很好参考价值的文章主要介绍了合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

按钮 (Button)
合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button),AIR724软件,Air724UG

按钮控件,这个就不用多说了,界面的基础控件之一。

示例代码
– 按键回调函数
event_handler = function(obj, event)
if event == lvgl.EVENT_CLICKED then
print(“Clicked\n”)
elseif event == lvgl.EVENT_VALUE_CHANGED then
print(“Toggled\n”)
end
end

– 按键1
btn1 = lvgl.btn_create(lvgl.scr_act(), nil)
lvgl.obj_set_event_cb(btn1, event_handler)
lvgl.obj_align(btn1, nil, lvgl.ALIGN_CENTER, 0, -40)
– 按键1 的文字
label = lvgl.label_create(btn1, nil)
lvgl.label_set_text(label, “Button”)
– 按键2
btn2 = lvgl.btn_create(lvgl.scr_act(), nil)
lvgl.obj_set_event_cb(btn2, event_handler)
lvgl.obj_align(btn2, nil, lvgl.ALIGN_CENTER, 0, 40)
lvgl.btn_set_checkable(btn2, true)
lvgl.btn_toggle(btn2)
lvgl.btn_set_fit2(btn2, lvgl.FIT_NONE, lvgl.FIT_TIGHT)
– 按键2 的文字
label = lvgl.label_create(btn2, nil)
lvgl.label_set_text(label, “Toggled”)
创建
按钮创建函数是 lvgl.btn_create,这里的按钮是不带文字的,文字实际上是通过在按钮内部创建标签实现的,首先我们来创建个按钮来看看:

lvgl.btn_create(lvgl.scr_act(), nil)
切换按钮
切换按钮就是点击之后会切换自己的状态,可以通过自身显示表示 开关 状态,也叫 开关按钮。看起来差别比较大,但是切换按钮并不是独立的一个控件,只是普通按钮设置了 checkable 属性。

lvgl.btn_set_checkable(btn, true)
合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button),AIR724软件,Air724UG

自适应
按钮控件继承自容器,可以使用设置容器特有的一些属性,比如 fit 这部分可以参考容器的使用,这部分就不在这里展开了,这里可以看看效果,lvgl.FIT_TIGHT 就是扩展到最大,我们现在可以创建一个按钮,让它横向填充满屏幕。

lvgl.btn_set_fit2(btn2, lvgl.FIT_MAX, lvgl.FIT_NONE)
合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button),AIR724软件,Air724UG

状态
按钮的样式可以通过设置风格改变,有关风格样式的说明可以参考 样式 章节,按钮有几种状态:

lvgl.BTN_STATE_RELEASED – 正常
lvgl.BTN_STATE_PRESSED – 按下
lvgl.BTN_STATE_DISABLED – 禁用
lvgl.BTN_STATE_CHECKED_RELEASED – 切换按钮 释放
lvgl.BTN_STATE_CHECKED_PRESSED – 切换按钮 按下
lvgl.BTN_STATE_CHECKED_DISABLED – 切换按钮 禁用
简单看,一个按钮就三种状态,正常,按下,禁用。可以手动设置按钮的当前状态,同时也可以单独对每种状态进行风格设置。我们可以把这些状态默认样式都打印一遍,看看效果。

function addBtn(y, s)
local btn = lvgl.btn_create(lvgl.scr_act(), nil)
lvgl.obj_align(btn, nil, lvgl.ALIGN_CENTER, 0, y)
local label = lvgl.label_create(btn, nil)
lvgl.label_set_text(label, s)
lvgl.btn_set_state(btn, lvgl[s])
lvgl.btn_set_fit2(btn, lvgl.FIT_TIGHT, lvgl.FIT_NONE)
end

addBtn(-100, “BTN_STATE_RELEASED”) – 正常
addBtn(-50 , “BTN_STATE_PRESSED”) – 按下
addBtn(0 , “BTN_STATE_DISABLED”) – 禁用
addBtn(50 , “BTN_STATE_CHECKED_RELEASED”) – 切换按钮 释放
addBtn(100 , “BTN_STATE_CHECKED_PRESSED”) – 切换按钮 按下
addBtn(150 , “BTN_STATE_CHECKED_DISABLED”) – 切换按钮 禁用
合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button),AIR724软件,Air724UG

事件
按键的基本用途就是响应事件了,可以通过对按键绑定回调函数,这和其他控件的方式是一样的。点击事件并不是按钮独有的,几乎所有的控件都可以响应点击事件,按钮和它们不同的地方在于点击之后会切换不同状态。示例代码描述的就是事件响应,我们来看看效果:

合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button),AIR724软件,Air724UG

API
lvgl.btn_create
调用 lvgl.btn_create(par, copy)
功能 创建一个按钮对象
返回 指向创建的按钮的指针
参数
par 指向对象的指针, 它将是新按钮的父对象
copy 指向按钮对象的指针, 如果不为 nil, 则将从其复制新对象
lvgl.btn_set_checkable
调用 lvgl.btn_set_checkable(btn, tgl)
功能 启用切换状态。释放时, 按钮将切换当前状态。
参数
btn 指向按钮对象的指针
tgl true:启用切换状态, false:禁用
lvgl.btn_set_state
调用 lvgl.btn_set_state(btn, state)
功能 设置按钮的状态
参数
btn 指向按钮对象的指针
state 按钮的新状态
lvgl.BTN_STATE_RELEASED
lvgl.BTN_STATE_PRESSED
lvgl.BTN_STATE_CHECKED_RELEASED
lvgl.BTN_STATE_CHECKED_PRESSED
lvgl.BTN_STATE_DISABLED
lvgl.BTN_STATE_CHECKED_DISABLED
lvgl.btn_toggle
调用 lvgl.btn_toggle(btn)
功能 切换按钮的状态(ON -> OFF, OFF -> ON)
参数
btn 指向按钮对象的指针
lvgl.btn_set_layout
调用 lvgl.btn_set_layout(btn, layout)
功能 在按钮上设置布局
参数
btn 指向按钮对象的指针
layout 参考 layout 的布局
lvgl.btn_set_fit4
调用 lvgl.btn_set_fit4(BTN, left, right, top, bottom)
功能 分别在所有四个方向上设置适配策略。
参数
btn 指向按钮对象的指针
left 左边的适配策略
right 右边的适配策略
top 上边的适配策略
bottom 下边的适配策略
lvgl.btn_set_fit2
调用 lvgl.btn_set_fit2(btn, hor, ver)
功能 分别设置水平和垂直的适配策略。
参数
btn 指向按钮对象的指针
hor 水平的适配策略
ver 垂直的适配策略
lvgl.btn_set_fit
调用 lvgl.btn_set_fit(btn, fit)
功能 设置四个方向上的适配策略。
参数
btn 指向按钮对象的指针
fit 四个方向的适配策略
lvgl.btn_get_state
调用 lvgl.btn_get_state(btn)
功能 获取按钮的当前状态
返回 按钮当前的状态
参数
btn 指向按钮对象的指针
lvgl.btn_get_checkable
调用 lvgl.btn_get_checkable(btn)
功能 获取按钮的切换启用属性
返回 true:启用检查, false:停用
参数
btn 指向按钮对象的指针
lvgl.btn_get_layout
调用 lvgl.btn_get_layout(btn)
功能 获取按钮的布局
返回 按钮的布局
参数
btn 指向按钮对象的指针
lvgl.btn_get_fit_left
调用 lvgl.btn_get_fit_left(btn)
功能 获取按钮左边的适配策略
返回 按钮左边的适配策略
参数
btn 指向按钮对象的指针
lvgl.btn_get_fit_right
调用 lvgl.btn_get_fit_right(btn)
功能 获取按钮右边的适配策略
返回 按钮右边的适配策略
参数
btn 指向按钮对象的指针
lvgl.btn_get_fit_top
调用 lvgl.btn_get_fit_top(btn)
功能 获取按钮上边的适配策略
返回 按钮上边的适配策略
参数
btn 指向按钮对象的指针
lvgl.btn_get_fit_bottom
调用 lvgl.btn_get_fit_bottom(btn)
功能 获取按钮下边的适配策略
返回 按钮下边的适配策略
参数
btn 指向按钮对象的指针
参考链接(C语言)文章来源地址https://www.toymoban.com/news/detail-680298.html

到了这里,关于合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 合宙Air724UG LuatOS-Air LVGL API控件--图表 (Chart)

    图表 (Chart) 一幅图胜过一千个字,通过图表展示出的数据内容能让用户更快速有效的了解数据特征。 代码示例 – 创建图表 chart = lvgl.chart_create(lvgl.scr_act(), nil) lvgl.obj_set_size(chart, 200, 150) lvgl.obj_align(chart, nil, lvgl.ALIGN_CENTER, 0, 0) – 设置 Chart 的显示模式 (折线图) lvgl.chart_set_typ

    2024年02月10日
    浏览(33)
  • 合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label)

    标签 (Label) 标签是 LVGL 用来显示文字的控件。 标签是通过  lvgl.label_create  函数创建的。 可以使用  lvgl.label_set_text  设置标签上的文字显示内容。 标签是有宽度的,默认情况下,在设置文字后会自行调整,标签宽度会自动扩充到文本宽度。但是这种显示方式是可以进行更改

    2024年02月09日
    浏览(34)
  • 合宙Air724UG LuatOS-Air LVGL API控件--日历 (Calendar)

    日历 (Calendar) LVGL 提供了一个用来选择和显示当前日期的日历控件。 示例代码 – 高亮显示的日期 highlightDate = lvgl.calendar_date_t() – 日历点击的回调函数 – 将点击日期设置高亮 function event_handler(obj, event) if event == lvgl.EVENT_VALUE_CHANGED then date = lvgl.calendar_get_pressed_date(obj) if date

    2024年02月10日
    浏览(37)
  • 合宙Air724UG LuatOS-Air LVGL API控件-窗口 (Window)

    窗口 (Window) 分 享导出pdf | lvgl.win_create 调用 lvgl.win_create(par, copy) 功能 创建一个窗口对象 返回 指向创建的窗口的指针 参数 par 指向对象的指针, 它将是新键对象的父对象 copy 指向窗口对象的指针, 如果不为 nil, 则将从其复制新对象 lvgl.win_clean 调用 lvgl.win_clean(win) 功能 清除窗口

    2024年02月09日
    浏览(39)
  • 合宙Air724UG LuatOS-Air LVGL API控件-截屏(Screenshots)

    截屏(Screenshots) 分 享导出pdf 截屏功能,core版本号要=3211 disp.screenshots 调用 disp.screenshots(name, x1, x2, y1, y2) 功能 截取显示屏指定区域图片 返回 0/-1 成功/失败 参数 name 文件路径名只支持bmp x1 水平初始值MIPI屏(0-479)/LCD屏(0-239) x2 水平结束值MIPI屏(x1-479)/LCD屏(x1-239)

    2024年02月07日
    浏览(32)
  • 合宙Air724UG LuatOS-Air LVGL API控件-键盘 (Keyboard)

    键盘 (Keyboard) LVGL 可以添加触摸键盘,但是很明显,使用触摸键盘的话必须要使用触摸的输入方式,否则无法驱动键盘。 通过  keyboard_create  可以创建键盘,实际上只要这一句就可在界面上显示键盘了。很难得的是,键盘没有复制对象, lvgl.keyboard_create  只需要传入一个参数

    2024年02月09日
    浏览(30)
  • 合宙Air724UG LuatOS-Air LVGL API控件-图片 (Image)

    图片 (Image) 图片 IMG 是用于显示图像的基本对象类型,图像来源可以是文件,或者定义的符号。 使用  lvgl.img_create  可以创建图像对象。 图片控件显示的内容有两个来源,一个是来源文件的图片,还是有一个就是 符号文字。符号文字是一段特殊的字符串,LVGL内部会将这串特

    2024年02月09日
    浏览(31)
  • 合宙Air724UG LuatOS-Air LVGL API控件-加载器(Spinner)

    加载器(Spinner) 通过  lvgl.spinner_create  就可创建一个加载器,本身自带动画效果。 可以通过  lvgl.spinner_set_arc_length  函数调整加载器的弧长。单位是度,一圈是按 360 度计算的。 通过  lvgl.spinner_set_spin_time  可以设置转速,这里的单位是 ms,是加载器转完一圈的时间,GIF 录制

    2024年02月09日
    浏览(30)
  • 合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox)

    微调框 (Spinbox) 微调框用于数值调整,有时候我们希望获取一个用户输入的数值,但是又不希望弹出键盘,可以使用微调框。 微调框的创建函数是  spinbox_create ,创建也比较简单。 这里有点需要注意,创建的微调框只有这个:   增大减小按钮是需要自己通过代码创建的,所以

    2024年02月09日
    浏览(29)
  • 合宙Air724UG LuatOS-Air LVGL API控件-滑动条 (Slider)

    滑动条 (Slider) 滑动条看起来和进度条是有些是有些像,但不同的是滑动条可以进行数值选择。 滑动条是通过  lvgl.slider_create  函数创建的。 滑动条创建完之后设置显示位置就可以进行操作了。 滑动条的使用和 Bar 还是很像的。可以设置数值  lvgl.slider_set_value ,也可以设置显

    2024年02月09日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包