LVGL控件之表格(lv_table)


一、概述

Table(表格)是由包含文本的行、列和单元格构建的。

表格对象非常轻量级,因为仅存储文本。没有为各个单元格创建真实的对象,因为它们只是即时绘制出来的。

表格对象默认已经在默认组中(如果已设置)。可以在导航模式下选中整张表,之后进入编辑模式可以在各个单元格之间进行移动选择。

  • LV_PART_MAIN 表格的背景使用了所有典型的背景样式属性。
  • LV_PART_ITEMS 表格的单元格也使用所有典型的背景样式属性和文本属性。

二、表格

1、设置单元格的值

在默认的情况下,用户创建出表格部件,该表格中并没有任何的内容,如果我们想在某个单元格中添加文本,则可调用 lv_table_set_cell_value 函数。

lv_obj_t *table = lv_table_create(lv_scr_act());

/*Fill the first column*/
lv_table_set_cell_value(table, 0, 0, "Name");
lv_table_set_cell_value(table, 1, 0, "Jorden");
lv_table_set_cell_value(table, 2, 0, "Jame");
lv_table_set_cell_value(table, 3, 0, "Kobe");

/*Fill the second column*/
lv_table_set_cell_value(table, 0, 1, "Age");
lv_table_set_cell_value(table, 1, 1, "52");
lv_table_set_cell_value(table, 2, 1, "36");
lv_table_set_cell_value(table, 3, 1, "40");

lv_obj_center(table);

2、行和列的设置

在默认的情况下,用户创建出表格部件,该部件只拥有一个单元格,如果我们需要设置单元格的行数和列数,可调用 lv_table_set_row_cntlv_table_set_col_cnt 函数。

lv_table_set_row_cnt(table,2);  /*设置行数 */
lv_table_set_col_cnt(table,2);  /*设置列数 */

行和列的编号都是从 0 开始的

3、宽度和高度的设置

在表格部件中,用户可通过 lv_table_set_col_width 函数设置某一列的宽度,而单元格的高度则根据单元格样式(字体、填充等)和行数自动计算出来的。

lv_table_set_col_width(table, 0, 500);

4、合并单元格

合并单元格是指将指定的连续单元区域合并为 1 个单元格,示意图如下所示:

由上图可知:如果 a 和 b 的单元格发生合并,合并之后的单元格归 a 单元格所有,而 b 单元格将被删除。注意:在表格部件中,某一个单元格只能和右边的单元格进行合并,不能垂直合并单元格。用户需要合并单元格,可调用 lv_table_add_cell_ctrl 函数。

在这里插入代码片

lv_table_add_cell_ctrl(table, 0, 0, LV_TABLE_CELL_CTRL_MERGE_RIGHT);

5、滚动

如果标签的宽度或高度设置为 LV_SIZE_CONTENT 则该尺寸将用于在相应方向上显示整个表格。 例如。lv_obj_set_size(table, LV_SIZE_CONTENT, LV_SIZE_CONTENT) 自动设置表格大小以显示所有列和行。

如果宽度或高度设置为小于“固有”大小的数字,则表格变为可滚动的。

6、事件

  • LV_EVENT_VALUE_CHANGED:用选择(通过触摸或按键点击)单元格时发送的事件。

7、API 函数

函数描述
lv_table_create()创建表格对象
lv_table_set_cell_value()设置单元格的值
lv_table_set_cell_value_fmt()设置单元格的值(格式化输入)
lv_table_set_row_cnt()设置行数
lv_table_set_col_cnt()设置列数
lv_table_set_col_width()设置列的宽度
lv_table_add_cell_ctrl()向单元格添加控制位
lv_table_clear_cell_ctrl()清除单元格的控制位
lv_table_get_cell_value()获取单元格的值
lv_table_get_row_cnt()获取行数
lv_table_get_col_cnt()获取列数
lv_table_get_col_width()获取列的宽度
lv_table_has_cell_ctrl()判断单元格是否具有控制位
lv_table_get_selected_cell()获得选定的单元格
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值