合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox)

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

微调框 (Spinbox)

合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox),AIR724软件,Air724UG


微调框用于数值调整,有时候我们希望获取一个用户输入的数值,但是又不希望弹出键盘,可以使用微调框。

示例代码

-- 回调函数
function spinbox_increment_event_cb(obj, event)
    if event == lvgl.EVENT_SHORT_CLICKED then
        lvgl.spinbox_increment(spinbox)
    end
end

function spinbox_decrement_event_cb(obj, event)
    if event == lvgl.EVENT_SHORT_CLICKED then
        lvgl.spinbox_decrement(spinbox)
    end
end

-- 创建按钮
function cBt(cont, txt, cb)
    local btn = lvgl.btn_create(cont, nil)
    lvgl.obj_set_event_cb(btn, cb) 
    local label = lvgl.label_create(btn, nil)
    lvgl.label_set_text(label, txt)
end

-- 容器
cont = lvgl.cont_create(lvgl.scr_act(), nil)
lvgl.disp_load_scr(cont)
lvgl.cont_set_fit(cont, lvgl.FIT_TIGHT)
lvgl.obj_align(cont, nil, lvgl.ALIGN_CENTER, 0, 0) 
lvgl.cont_set_layout(cont, lvgl.LAYOUT_CENTER)

-- 按钮一
cBt(cont, "plus", spinbox_increment_event_cb)

-- 微调框
spinbox = lvgl.spinbox_create(cont, nil)
lvgl.spinbox_set_range(spinbox, -1000, 25000)
lvgl.spinbox_set_digit_format(spinbox, 5, 2)
lvgl.spinbox_step_prev(spinbox)

-- 按钮二
cBt(cont, "minus", spinbox_decrement_event_cb)

创建

微调框的创建函数是 spinbox_create,创建也比较简单。

spinbox = lvgl.spinbox_create(cont, nil)

这里有点需要注意,创建的微调框只有这个:
 

合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox),AIR724软件,Air724UG


增大减小按钮是需要自己通过代码创建的,所以上面的示例代码看起来比较多。示例创建的微调框是这个样子:

合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox),AIR724软件,Air724UG

数值调整

微调框的数值调整函数有两个,加一个单位lvgl.spinbox_increment,减一个单位lvgl.spinbox_decrement

lvgl.spinbox_increment(spinbox)
lvgl.spinbox_decrement(spinbox)

lvgl.spinbox_set_range 可以设置微调框的数值显示范围,lvgl.spinbox_set_value 可以直接手动设置数值,lvgl.spinbox_set_step 是需要和上面的 lvgl.spinbox_incrementlvgl.spinbox_decrement两个函数配合使用的,增减的步长默认是 1,这个函数还是很有用的,我们可以把步长设置成 7,然后看看 1000 - 7 到底是多少。

lvgl.spinbox_set_range(spinbox, 0, 1000)
lvgl.spinbox_set_value(spinbox, 1000)
lvgl.spinbox_set_digit_format(spinbox, 4, 0)
lvgl.spinbox_set_step(spinbox, 7)

合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox),AIR724软件,Air724UG

格式

通过函数 lvgl.spinbox_set_digit_format 可以设置微调框的数字显示格式,第一个参数是微调框的显示位数,是总位数。第二个参数是小数点前面的位数,0 表示没有小数点。除了位数显示,还可以在符号和数字之间添加空格 lvgl.spinbox_set_padding_left

lvgl.spinbox_set_digit_format(spinbox, 8, 4)
lvgl.spinbox_set_padding_left(spinbox, 3)

合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox),AIR724软件,Air724UG

事件

数值更改时会有 lvgl.EVENT_VALUE_CHANGED 消息收到,但是结合一般微调框的使用方法,实际上都是对按钮添加回调,然后通过函数去更改微调框的数值。

合宙Air724UG LuatOS-Air LVGL API控件-微调框 (Spinbox),AIR724软件,Air724UG文章来源地址https://www.toymoban.com/news/detail-699568.html

API

lvgl.spinbox_create

调用 lvgl.spinbox_create(par, copy)
功能 创建一个微调框对象
返回 指向创建的微调框的指针
参数
par 指向对象的指针, 它将是新键对象的父对象
copy 指向微调框对象的指针, 如果不为 nil, 则将从其复制新对象

lvgl.spinbox_set_range

调用 lvgl.spinbox_set_range(spinbox, min, max)
功能 设置微调框的最小值和最大值
参数
spinbox 指向微调框对象的指针
min 最小值
max 最大值

lvgl.spinbox_set_range

调用 lvgl.spinbox_set_range(spinbox, val)
功能 设置微调框的数值
参数
spinbox 指向微调框对象的指针
val 需要设置的数值

lvgl.spinbox_set_digit_format

调用 lvgl.spinbox_set_digit_format(spinbox, count, pos)
功能 设置微调框数值格式
参数
spinbox 指向微调框对象的指针
count 显示总位数
pos 小数点位置,也可以理解成整数位数,0 表示没有小数点。

lvgl.spinbox_set_step

调用 lvgl.spinbox_set_step(spinbox, step)
功能 设置微调框的设置步长
参数
spinbox 指向微调框对象的指针
step 需要设置的设置步长

lvgl.spinbox_set_padding_left

调用 lvgl.spinbox_set_padding_left(spinbox, n)
功能 设置微调框的空格个数
参数
spinbox 指向微调框对象的指针
n 符号位和数值之间空格的个数

lvgl.spinbox_get_value

调用 lvgl.spinbox_get_value(spinbox)
功能 获取微调框的数值
返回 微调框的数值
参数
spinbox 指向微调框对象的指针

lvgl.spinbox_increment

调用 lvgl.spinbox_increment(spinbox)
功能 微调框的数值增加一个单位
参数
spinbox 指向微调框对象的指针

lvgl.spinbox_decrement

调用 lvgl.spinbox_decrement(spinbox)
功能 微调框的数值减小一个单位
参数
spinbox 指向微调框对象的指针

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

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

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

相关文章

  • 合宙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控件--容器 (Container)

    容器 (Container) 容器是 lvgl 相当重要的一个控件了,可以设置布局,容器的大小也会自动进行调整,利用容器可以创建出自适应成都很高的界面布局。 代码示例 – 创建容器 cont = lvgl.cont_create(lvgl.scr_act(), nil) lvgl.obj_set_auto_realign(cont, true) lvgl.obj_align(cont, nil, lvgl.ALIGN_CENTER, 0, 0)

    2024年02月10日
    浏览(31)
  • 合宙Air724UG LuatOS-Air LVGL API控件-页面 (Page)

    页面 (Page) 当控件内容过多,无法在屏幕内完整显示时,可让其在  页面  内显示。 通过函数  lvgl.page_create  可以创建一个页面 页面对象可以像容器一样设置各个方向上的匹配模式,可以把需要显示的对象添加进页面进行显示,页面可以作为控件的父容器。就像下面这样,

    2024年02月09日
    浏览(44)
  • 合宙Air724UG LuatOS-Air LVGL API控件--曲线 (Arc)

    曲线 (Arc) 曲线控件,也可以称为弧。因为 Arc 本身就是弧,弧形的意思。根据控件的样子也能推测出它的使用场景,一般用在加载器(就是等待界面转的圈圈)或者数值显示,数值调节这些场景。曲线控件分了两个部分,前景和背景,都可以分别进行设置。 示例代码 – 创建曲

    2024年02月11日
    浏览(46)
  • 合宙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日
    浏览(38)
  • 合宙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日
    浏览(42)
  • 合宙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日
    浏览(31)
  • 合宙Air724UG LuatOS-Air LVGL API控件-滑动条 (Slider)

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

    2024年02月09日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包