一. LVGL GUI开关控件的概念

选项卡视图对象可用于组织选项卡中的内容。

二. LVGL GUI开关小部件和样式

Tab 视图对象包含几个部分。主要是 LV_TABVIEW_PART_BG 。它是一个矩形容器,用于容纳 Tab 视
图的其他部分。
在背景上创建了两个重要的真实部分:

  • LV_TABVIEW_PART_BG_SCRL :这是 Page 的可滚动部分。它使选项卡的内容彼此相邻。页面的背景始终是透明的,不能从外部访问。
  • LV_TABVIEW_PART_TAB_BG :选项卡按钮,它是一个 Button 矩阵。单击一个按钮将滚动LV_TABVIEW_PART_BG_SCRL 到相关选项卡的内容。可以通过访问选项卡按钮LV_TABVIEW_PART_TAB_BTN 。选择选项卡时,按钮处于选中状态,可以使用设置样式LV_STATE_CHECKED 。选项卡的按钮矩阵的高度是根据字体高度加上背景和按钮样式的填充来计算的。

列出的所有部分均支持典型的背景样式属性和填充。
LV_TABVIEW_PART_TAB_BG 还有一个额外的实际部分,即指标,称为 LV_TABVIEW_PART_INDIC 。它是当前选定选项卡下的一个类似矩形的细对象。当选项卡视图设置为另一个选项卡的动画时,指示符也将设置为动画。使用典型的背景样式属性可以是样式。该尺寸样式属性将设置其厚度。添加新选项卡后,将为其创建一个页面,并将 LV_TABVIEW_PART_BG_SCRL 新按钮添加到“LV_TABVIEW_PART_TAB_BG 按钮”矩阵中。创建的页面可以用作普通页面,并且具有通常的页面部分。

三. LVGL GUI开关控件的使用

1. 增加一个tab(Adding tab)

通过这个函数lv_tabview_add_tab(tabview, "Tab name")增加一个tab

2. 改变tab(Change tab)

要选择一个新标签,您可以:

  • 在按钮矩阵部分上单击它
  • 滑动
  • 使用功能 lv_tabview_set_tab_act(tabview, id, LV_ANIM_ON/OFF)

3. 改变tab名称(Change tab's name)

通过这个函数lv_tabview_set_tab_name(tabview, id, name)改变tab的名字

4. tab按键位置(Tab button's position)

通过这个函数lv_tabview_set_btns_pos(tabview, LV_TABVIEW_TAB_POS_TOP/BOTTOM/LEFT/RIGHT/NONE)来设置tab的位置

默认情况下,选项卡选择器按钮位于“选项卡”视图的顶部。LV_TABVIEW_TAB_POS_NONE  将隐藏标签。
请注意,添加标签后,您无法将标签的位置从顶部或底部更改为左侧或右侧。

5. 动画时间(Animation time)

通过这个函数来设置切换tab的时间动画lv_tabview_set_anim_time(tabview, anim_time_ms)

6. 滚动传播(Scroll propagation)

由于选项卡的内容对象是一个 Page,因此它可以接收来自其他类似 Page 的对象的滚动传播。例如,如果在选项卡的内容上创建了一个文本区域,并且滚动了该文本区域,但到达末尾,则滚动
可以传播到内容页面。可以使用启用它。 lv_page/textarea_set_scroll_propagation(obj, true)
默认情况下,选项卡的内容页面已启用滚动传播,因此,当它们水平滚动时,滚动会传播到
LV_TABVIEW_PART_BG_SCRL 该页面,这样页面将被滚动。可以使用禁用手动滑动。 lv_page_set_scroll_propagation(tab_page, false)

7. 事件(Event)

除了通用事件外,还有一个特殊事件

LV_EVENT_VALUE_CHANGED Sent when a new tab is selected by sliding or clicking the tab button

我们来看一个组合型例子

void lvgl_tabview_test(void)
{/*Create a Tab view object*/lv_obj_t* tabview;tabview = lv_tabview_create(lv_scr_act(), NULL);/*Add 3 tabs (the tabs are page (lv_page) and can be scrolled*/lv_obj_t* tab1 = lv_tabview_add_tab(tabview, "Tab 1");lv_obj_t* tab2 = lv_tabview_add_tab(tabview, "Tab 2");lv_obj_t* tab3 = lv_tabview_add_tab(tabview, "Tab 3");/*Add content to the tabs*/lv_obj_t* label = lv_label_create(tab1, NULL);lv_label_set_text(label, "This the first tab\n\n""If the content\n""of a tab\n""become too long\n""the it \n""automatically\n""become\n""scrollable.");label = lv_label_create(tab2, NULL);lv_label_set_text(label, "Second tab");label = lv_label_create(tab3, NULL);lv_label_set_text(label, "Third tab");
}

好了,完结了,更多精彩继续戳↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

嵌入式GUI LVGL『Tableview选项卡控件』介绍相关推荐

  1. 制作一个GUI仪表盘,安排!LVGL『Gauge仪表盘控件』介绍

    一. LVGL GUI仪表盘控件的概念 仪表盘是一种带有刻度标签和一根或多根针的仪表.比如车速/车转速等 二. LVGL GUI仪表盘小部件和样式 量规的主要部分称为 LV_GAUGE_PART_MA ...

  2. GUI怎么能缺少列表, LVGL『List列表控件』介绍

    一. LVGL GUI列表控件的概念 列表是从背景页面和其上的按钮构建的.按钮包含一个可选的类似图标的图像(也可以是一个符号)和一个 Label.当列表足够长时,可以滚动它. 二. LVGL GUI列 ...

  3. 肝一个嵌入式日历吧!LVGL『Calendar日历控件』介绍

    一. LVGL GUI日历控件的概念 LVGL做的日历空间还是比较好看的,而且需要我们做的事情很少,LVGL的日历控件有以下功能 突出显示当天 突出显示任何用户定义的日期 显示日期名称 单击按钮进入下 ...

  4. 想做输入法界面?安排,LVGL『keyboard键盘控件』介绍

    一. LVGL GUI键盘控件的概念 Keyboard 对象是一个特殊的 Button 矩阵,具有预定义的按键映射和其他功能,以实现虚拟键盘来编写文本. 二. LVGL GUI键盘小部件和样式 类似于 ...

  5. LVGL『Canvas画布控件』介绍

    一. LVGL GUI画布控件的概念 画布继承自图像,用户可以在其中绘制任何内容.可以使用 lvgl 的绘图引擎在此处绘制矩形,文本,图像,圆弧.除了一些"效果",还可以应用,例如 ...

  6. 嵌入式GUI LVGL『Text Area文本区域控件』介绍

    一. LVGL GUI文本区域控件的概念 文本区域是一个带有标签和光标的页面.文本或字符可以添加到它.长行被换行,当文本足够长时,可以滚动文本区域. 二. LVGL GUI文本区域小部件和样式 文本区 ...

  7. 嵌入式GUI LVGL『Tile View拼接视图控件』介绍

    一. LVGL GUI拼接视图控件的概念 Tileview是一个容器对象,其中的元素(称为tiles)可以以网格形式排列.通过滑动,用户可以在这些贴图之间导航. 如果Tileview是屏幕大小,它会提 ...

  8. GUI一灯大师,LVGL『LED控件』介绍

    一. LVGL GUI LED控件的概念 LED 是矩形(或圆形)的对象.它的亮度可以调节.亮度降低时,LED 的颜色会变暗. 二. LVGL GUI LED小部件和样式 LED 只有一个主要部分,称 ...

  9. 类似PS的蒙版?可以实现,LVGL『Object mask对象蒙版控件』介绍

    一. LVGL GUI对象蒙版控件的概念 绘制其子级时,对象蒙版能够向图形添加一些蒙版 二. LVGL GUI对象蒙版小部件和样式 对象蒙版只有一个主要部分 LV_OBJMASK_PART_BG ,它 ...

最新文章

  1. 深入理解Eureka之源码解析
  2. android Handler机制之ThreadLocal详解
  3. 电力系统通信站和设备管理系统分析设计
  4. python词云图代码示例 无jieba_【词云图】如何用python的第三方库jieba和wordcloud画词云图...
  5. leetcode------Subsets
  6. mysql链接压测_MySQL压测工具mysqlslap的介绍与使用
  7. apache benchmark
  8. 本地上传文件到Linux云服务器
  9. python教程吾爱破解_2020年最新python入门到精通教程
  10. mysql单表约束为_MySQL 表约束
  11. [论文笔记]Convolutional Neural Networks for Sentence Classification
  12. es 怎么验证是否安装成功_ElasticSearch(ES)预警服务 Watcher安装以及探究
  13. jsp九大内置对象的作用及用法
  14. winform 鼠标 静止时间_四款蓝牙鼠标的详细使用体验对比
  15. 无刷直流电机模糊PID控制
  16. system/app 下 精简程序
  17. 宋宝华:世上最好的共享内存(Linux共享内存最透彻的一篇)
  18. 中药知多少!!!!!
  19. 泌阳县鸿蒙机器人编程,鸿蒙教育机器人编程课程开始招生了!!!
  20. 不用下载软件也能打开EPUB?详解这款支持网页端的阅读器

热门文章

  1. Sencha Themer
  2. 谈谈双活业务中心和异地容灾备份设计
  3. c语言 英文单词频率统计 哈希存储
  4. 学习用HTML做新闻摘要
  5. 计算机显卡怎样安装方法,电脑装机小知识,新手如何正确安装好独立显卡
  6. uni的numberbox怎么用_uni-app购物车功能
  7. 对话 Roy Li: 信任的产生即价值的产生
  8. 星起航:亚马逊卖家利用一件代发模式实现跨境电商飞速发展
  9. ubuntu更新源出现错误
  10. python大数据就业方向_大数据专业未来的就业方向有哪些?[黑马程序员]