mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
124 lines
3.4 KiB
ReStructuredText
124 lines
3.4 KiB
ReStructuredText
Table (lv_table)
|
||
================
|
||
|
||
Overview
|
||
********
|
||
|
||
Tables, as usual, are built from rows, columns, and cells containing
|
||
texts.
|
||
|
||
The Table object is very lightweight because only the texts are stored.
|
||
No real objects are created for cells but they are just drawn on the
|
||
fly.
|
||
|
||
The Table is added to the default group (if it is set). Besides the
|
||
Table is an editable object to allow selecting a cell with encoder
|
||
navigation too.
|
||
|
||
Parts and Styles
|
||
****************
|
||
|
||
- :cpp:enumerator:`LV_PART_MAIN` The background of the table uses all the typical
|
||
background style properties.
|
||
- :cpp:enumerator:`LV_PART_ITEMS` The cells of the table also use all the typical
|
||
background style properties and the text properties.
|
||
|
||
Usage
|
||
*****
|
||
|
||
Set cell value
|
||
--------------
|
||
|
||
The cells can store only text so numbers need to be converted to text
|
||
before displaying them in a table.
|
||
|
||
:cpp:expr:`lv_table_set_cell_value(table, row, col, "Content")`. The text is
|
||
saved by the table so it can be even a local variable.
|
||
|
||
Line breaks can be used in the text like ``"Value\n60.3"``.
|
||
|
||
New rows and columns are automatically added is required
|
||
|
||
Rows and Columns
|
||
----------------
|
||
|
||
To explicitly set number of rows and columns use
|
||
:cpp:expr:`lv_table_set_row_cnt(table, row_cnt)` and
|
||
:cpp:expr:`lv_table_set_col_cnt(table, col_cnt)`
|
||
|
||
Width and Height
|
||
----------------
|
||
|
||
The width of the columns can be set with
|
||
:cpp:expr:`lv_table_set_col_width(table, col_id, width)`. The overall width of
|
||
the Table object will be set to the sum of columns widths.
|
||
|
||
The height is calculated automatically from the cell styles (font,
|
||
padding etc) and the number of rows.
|
||
|
||
Merge cells
|
||
-----------
|
||
|
||
Cells can be merged horizontally with
|
||
:cpp:expr:`lv_table_add_cell_ctrl(table, row, col, LV_TABLE_CELL_CTRL_MERGE_RIGHT)`.
|
||
To merge more adjacent cells call this function for each cell.
|
||
|
||
Scroll
|
||
------
|
||
|
||
If the label's width or height is set to :c:macro:`LV_SIZE_CONTENT` that size
|
||
will be used to show the whole table in the respective direction. E.g.
|
||
:cpp:expr:`lv_obj_set_size(table, LV_SIZE_CONTENT, LV_SIZE_CONTENT)`
|
||
automatically sets the table size to show all the columns and rows.
|
||
|
||
If the width or height is set to a smaller number than the "intrinsic"
|
||
size then the table becomes scrollable.
|
||
|
||
Events
|
||
******
|
||
|
||
- :cpp:enumerator:`LV_EVENT_VALUE_CHANGED` Sent when a new cell is selected with
|
||
keys.
|
||
- :cpp:enumerator:`LV_EVENT_DRAW_PART_BEGIN` and :cpp:enumerator:`LV_EVENT_DRAW_PART_END` are sent
|
||
for the following types:
|
||
|
||
- :cpp:enumerator:`LV_TABLE_DRAW_PART_CELL` The individual cells of the table
|
||
|
||
- ``part``: :cpp:enumerator:`LV_PART_ITEMS`
|
||
- ``draw_area``: area of the indicator
|
||
- ``rect_dsc``
|
||
- ``label_dsc``
|
||
- ``id``: current row × col count + current column
|
||
|
||
See the events of the `Base object </widgets/obj>`__ too.
|
||
|
||
Learn more about :ref:`events`.
|
||
|
||
Keys
|
||
****
|
||
|
||
The following *Keys* are processed by the Tables: -
|
||
``LV_KEY_RIGHT/LEFT/UP/DOWN/`` Select a cell.
|
||
|
||
Note that, as usual, the state of :cpp:enumerator:`LV_KEY_ENTER` is translated to
|
||
``LV_EVENT_PRESSED/PRESSING/RELEASED`` etc.
|
||
|
||
:cpp:expr:`lv_table_get_selected_cell(table, &row, &col)` can be used to get the
|
||
currently selected cell. Row and column will be set to
|
||
:c:macro:`LV_TABLE_CELL_NONE` no cell is selected.
|
||
|
||
Learn more about :ref:`indev_keys`.
|
||
|
||
Example
|
||
*******
|
||
|
||
.. include:: ../examples/widgets/table/index.rst
|
||
|
||
MicroPython
|
||
-----------
|
||
|
||
No examples yet.
|
||
|
||
API
|
||
***
|