合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label)

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

标签 (Label)

合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label),AIR724软件,Air724UG


标签是 LVGL 用来显示文字的控件。

示例代码

label = lvgl.label_create(lvgl.scr_act(), nil)
lvgl.label_set_recolor(label, true)                     
lvgl.label_set_text(label, "#0000ff Re-color# #ff00ff words# #ff0000 of\n# align the lines to\n the center and wrap\n long text automatically.")
lvgl.obj_set_width(label, 150)  
lvgl.label_set_align(label, lvgl.LABEL_ALIGN_CENTER)
lvgl.obj_align(label, nil, lvgl.ALIGN_CENTER, 0, -40)

创建

标签是通过 lvgl.label_create 函数创建的。

label = lvgl.label_create(lvgl.scr_act(), nil)

设置文字

可以使用 lvgl.label_set_text 设置标签上的文字显示内容。

lvgl.label_set_text(label, "Hello World!")

合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label),AIR724软件,Air724UG

长模式

标签是有宽度的,默认情况下,在设置文字后会自行调整,标签宽度会自动扩充到文本宽度。但是这种显示方式是可以进行更改的,也就是设置 长模式,长模式是通过函数 lvgl.label_set_long_mode 进行设置的。使用长模式有个前提,就是文字内容需要比标签长。所以需要先设置 长模式,然后设置标签宽度,最后才是设置文字内容。长模式的选项有以下几种:

-- 设置模式
lvgl.LABEL_LONG_EXPAND 	    
lvgl.LABEL_LONG_BREAK  	    
lvgl.LABEL_LONG_CROP   	   
lvgl.LABEL_LONG_DOT    	      
lvgl.LABEL_LONG_SROLL  	    
lvgl.LABEL_LONG_SROLL_CIRC  

我们先来看下 lvgl.LABEL_LONG_BREAK 的显示效果,注意顺序,长模式宽度文字

lvgl.label_set_long_mode(lab, lvgl.LABEL_LONG_BREAK)
lvgl.obj_set_width(lab, 60)
lvgl.label_set_text(lab, "ABCDEFGHIJKLMK")

合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label),AIR724软件,Air724UG

lvgl.LABEL_LONG_CROP 超出长度内容部分会直接截断

lvgl.label_set_long_mode(lab, lvgl.LABEL_LONG_CROP)

合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label),AIR724软件,Air724UG

lvgl.LABEL_LONG_DOT 同样会截断显示,但是会在标签后添加 ...,来表示有省略内容。

lvgl.label_set_long_mode(lab, lvgl.LABEL_LONG_DOT)

合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label),AIR724软件,Air724UG

lvgl.LABEL_LONG_SROLL 是设置滚动模式,文字滚动方式是左右滚动。

lvgl.label_set_long_mode(lab, lvgl.LABEL_LONG_SROLL)

合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label),AIR724软件,Air724UG

lvgl.LABEL_LONG_SROLL 也是设置滚动模式,文字滚动方式是循环滚动。

lvgl.label_set_long_mode(lab, lvgl.LABEL_LONG_SROLL_CIRC)

合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label),AIR724软件,Air724UG

文字方向

文字的默认方向是依靠文本方向的,中英文都是从左向右书写阅读的,但是有些文字的书写阅读方向是从右向左的,比如阿拉伯文,lvgl.LABEL_ALIGN_AUTO 就是根据文字方向对齐。文字对齐方向就是靠左,靠右,居中三种,这个没有什么好展示的了,这里有一点需要注意的是,在使用长模式时需要文字内容比标签宽度宽,但是要看出文字对齐方向效果则需要文字内容比标签宽度窄,所以我们需要把标签宽度加长,这里只展示个靠右的效果。

lvgl.obj_set_width(lab, 160)
lvgl.label_set_text(lab, "ABCDE")
lvgl.label_set_align(lab, lvgl.LABEL_ALIGN_RIGHT)

合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label),AIR724软件,Air724UG

设置颜色

文本设置颜色可以通过启用 recolor 实现:

lvgl.label_set_recolor(lab, true)

随后就可以通过命令设置文本的不同部分颜色,来对文本进行重新着色。标签会把 # 打头的6个数字识别为颜色值,该模式可以随时取消。

lvgl.label_set_recolor(lab, true)
lvgl.label_set_text(lab, "#FF0000 RED#\n#00FF00 GREEN#\n#0000FF BLUE#\n")

合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label),AIR724软件,Air724UG

编辑

可以通过函数对标签的文本进行简单的编辑,LVGL 的官方库是由 C语言 编写,C语言本身对文本操作不是特别方便。Lua 相对于 C 来说文本处理能力要强很多,所以此接口用途范围也比较窄。label_cut_text 删除文本,虽然 cut 看起来像是"剪切",实际上这里的意思是"删除",该函数的返回值是空,并没有把剪切完的文本传递出来。label_ins_text 插入文本,在指定的位置插入文本。

API

lvgl.label_create(par, copy)|
|功能|创建一个标签对象|
|返回|指向创建的标签对象的指针|
|参数||
|par|指向对象的指针, 它将是新键对象的父对象|
|copy|指向标签对象的指针, 如果不为 nil, 则将从其复制新对象|文章来源地址https://www.toymoban.com/news/detail-701010.html

lvgl.label_create

调用 lvgl.label_create(label, text)
功能 设置标签的新文本
参数
label 指向标签对象的指针
text 需要对标签设置的文本

lvgl.label_set_long_mode

调用 lvgl.label_set_long_mode(label, mode)
功能 设置标签的长模式显示
参数
label 指向标签对象的指针
mode 标签的长模式
lvgl.LABEL_LONG_EXPAND
lvgl.LABEL_LONG_BREAK
lvgl.LABEL_LONG_CROP
lvgl.LABEL_LONG_DOT
lvgl.LABEL_LONG_SROLL
lvgl.LABEL_LONG_SROLL_CIRC

lvgl.label_set_align

调用 lvgl.label_set_align(label, align)
功能 设置标签的文字对齐方式
参数
label 指向标签对象的指针
align 标签的对齐方式
lvgl.LABEL_ALIGN_AUTO
lvgl.LABEL_ALIGN_CENTER
lvgl.LABEL_ALIGN_LEFT
lvgl.LABEL_ALIGN_RIGHT

lvgl.label_set_recolor

调用 lvgl.label_set_recolor(label, en)
功能 启动重新着色功能
参数
label 指向标签对象的指针
en true 打开重新着色,false 关闭重新着色

lvgl.label_set_anim_speed

调用 lvgl.label_set_anim_speed(label, speed)
功能 设置文本滚动的速度
参数
label 指向标签对象的指针
speed 文本滚动的速度,单位是 像素/秒

lvgl.label_ins_text

调用 lvgl.label_ins_text(label, pos, txt)
功能 在标签上插入文本
参数
label 指向标签对象的指针
pos 文本插入的位置
txt 需要插入的文本

lvgl.label_cut_text

调用 lvgl.label_cut_text(label, pos, cnt)
功能 从标签中删除文本
参数
label 指向标签对象的指针
pos 文本删除的位置
cnt 删除文本的个数

lvgl.label_is_char_under_pos

调用 lvgl.label_is_char_under_pos(label, tpos)
功能 检查某坐标点位置是否绘制有字符
返回 有字符 true,无字符 false
参数
label 指向标签对象的指针
tpos 坐标点的 table,如 {2, 3}

lvgl.label_get_text

调用 lvgl.label_get_text(label)
功能 获取标签的设置文本
返回 当前标签文本
参数
label 指向标签对象的指针

lvgl.label_get_align

调用 lvgl.label_get_align(label)
功能 获取标签的对齐方式
返回 当前标签的对齐方式
参数
label 指向标签对象的指针

lvgl.label_get_anim_speed

调用 lvgl.label_get_anim_speed(label)
功能 获取标签的滚动速度
返回 当前标签的滚动速度
参数
label 指向标签对象的指针

lvgl.label_get_long_mode

调用 lvgl.label_get_long_mode(label)
功能 获取标签的显示模式
返回 当前标签的显示模式
参数
label 指向标签对象的指针

lvgl.label_get_recolor

调用 lvgl.label_get_recolor(label)
功能 获取当前文本着色开关
返回 当前文本着色是否打开
形参
label 指向标签对象的指针

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

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

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

相关文章

  • 合宙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日
    浏览(36)
  • 合宙Air724UG LuatOS-Air LVGL API控件--曲线 (Arc)

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

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

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

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

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

    2024年02月09日
    浏览(35)
  • 合宙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日
    浏览(44)
  • 合宙Air724UG LuatOS-Air LVGL API控件-图片 (Image)

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

    2024年02月09日
    浏览(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日
    浏览(50)
  • 合宙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日
    浏览(40)
  • 合宙Air724UG LuatOS-Air LVGL API控件-滑动条 (Slider)

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

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

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

    2024年02月09日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包