Menu (菜单)(lv_menu)
Overview(概述)
显示原文
The menu widget can be used to easily create multi-level menus. It handles the traversal between pages automatically.
菜单控件可以轻松创建多级菜单。它自动处理页面之间的遍历切换。
Parts and Styles(部分和样式)
显示原文
The menu widget is built from the following Widgets:
Main container:
lv_menu_main_cont
Main header:
lv_menu_main_header_cont
Back button: Button(按钮) (lv_button)
Back button icon: Image (图象)(lv_image)
Main page:
lv_menu_page
Sidebar container:
lv_menu_sidebar_cont
Sidebar header:
lv_menu_sidebar_header_cont
Back button: Button(按钮) (lv_button)
Back button icon: Image (图象)(lv_image)
Sidebar page:
lv_menu_page
菜单控件由以下部件组合而成:
主容器:
lv_menu_main_cont
主标头:
lv_menu_main_header_cont
返回按钮: Button(按钮) (lv_button)
返回按钮图标: Image (图象)(lv_image)
页面:
lv_menu_page
侧边栏容器:
lv_menu_sidebar_cont
侧边栏标头:
lv_menu_sidebar_header_cont
Usage(用法)
Create a menu(创建菜单)
显示原文
lv_menu_create(parent) creates a new empty menu.
lv_menu_create(parent) 创建一个新的空菜单。
Header mode(标头模式)
显示原文
The following header modes exist:
LV_MENU_HEADER_TOP_FIXED
Header is positioned at the top.LV_MENU_HEADER_TOP_UNFIXED
Header is positioned at the top and can be scrolled out of view.LV_MENU_HEADER_BOTTOM_FIXED
Header is positioned at the bottom.
You can set header modes with lv_menu_set_mode_header(menu, LV_MENU_HEADER...).
页面的标头可以设置为下面的模式:
LV_MENU_HEADER_TOP_FIXED
标头位于顶部。LV_MENU_HEADER_TOP_UNFIXED
标头位于顶部,可以滚动到视图之外。LV_MENU_HEADER_BOTTOM_FIXED
标头位于底部。
可以使用函数 lv_menu_set_mode_header(menu, LV_MENU_HEADER...) 设置模式。
Root back button mode(根页面后退按钮模式)
显示原文
The following root back button modes exist:
LV_MENU_ROOT_BACK_BTN_DISABLED
LV_MENU_ROOT_BACK_BTN_ENABLED
You can set root back button modes with lv_menu_set_mode_root_back_button(menu, LV_MENU_ROOT_BACK_BTN...).
根页面后退按钮可以设置为下面的模式:
LV_MENU_ROOT_BACK_BTN_DISABLED
LV_MENU_ROOT_BACK_BTN_ENABLED
可以使用函数 lv_menu_set_mode_root_back_button(menu, LV_MENU_ROOT_BACK_BTN...) 设置模式。
Create a menu page(创建菜单页面)
显示原文
lv_menu_page_create(menu, title) creates a new empty menu page. You can add any widgets to the page.
可以使用函数 lv_menu_page_create(menu, title) 创建一个新的空菜单页,之后你可以向该页面添加任何控件。
Set a menu page in the main area(在主区域设置菜单页面)
显示原文
Once a menu page has been created, you can set it to the main area with
lv_menu_set_page(menu, page). NULL
to clear main and clear menu
history.
创建菜单页面后,可以使用函数 lv_menu_set_page(menu, page) 将其设置为主区域, 参数 page
为 NULL
则会清除主菜单和清除菜单历史页面。
Set a menu page in the sidebar(在侧边栏中设置菜单页面)
显示原文
Once a menu page has been created, you can set it to the sidebar with
lv_menu_set_sidebar_page(menu, page). NULL
to clear sidebar.
创建菜单页面后,可以使用函数 lv_menu_set_sidebar_page(menu, page) 将其设置为侧边栏,参数 page
为``NULL`` 则会清除侧边栏页面。
Linking between menu pages(菜单页之间的链接)
显示原文
If you have, for instance, created a button obj in the main Page. When you click the button Widget, you want it to open up a new Page, use lv_menu_set_load_page_event(menu, btn, new page).
例如,如果你在主页面中创建了一个按钮对象。当你点击该按钮部件时,你希望它打开一个新页面,可以使用 lv_menu_set_load_page_event(menu, btn, new page)。
Create a menu container, section, separator(创建菜单容器、部分、分隔符)
显示原文
The following objects can be created so that it is easier to style the menu:
lv_menu_cont_create(parent page) creates a new empty container.
lv_menu_section_create(parent page) creates a new empty section.
lv_menu_separator_create(parent page) creates a separator.
可以创建以下对象,以便更轻松地设置菜单样式:
lv_menu_cont_create(parent page) 创建一个新的空容器。
lv_menu_section_create(parent page) 创建一个新的空白部分。
lv_menu_separator_create(parent page) 创建一个分隔符。
Events(事件)
显示原文
LV_EVENT_VALUE_CHANGED
Sent when a page is shown.lv_menu_get_cur_main_page(menu) returns a pointer to Menu Page that is currently displayed in the main container.
lv_menu_get_cur_sidebar_page(menu) returns a pointer to Menu Page that is currently displayed in the sidebar container.
LV_EVENT_CLICKED
Sent when a back button in a header from either main or sidebar is clicked.LV_OBJ_FLAG_EVENT_BUBBLE
is enabled on the buttons so you can add events to the menu itself.lv_menu_back_button_is_root(menu, button) to check if button is root back button
Further Reading
Learn more about Base-Widget Events emitted by all Widgets.
Learn more about Events(事件).
LV_EVENT_VALUE_CHANGED
切换到新页面显示时发送。lv_menu_get_cur_main_page(menu) 会返回一个指向当前显示在主容器中的菜单页面的指针。
lv_menu_get_cur_sidebar_page(menu) 会返回一个指向当前显示在侧边栏容器中的菜单页面的指针。
LV_EVENT_CLICKED
当单击主标头或侧边栏中的后退按钮时触发该事件。按钮已经启用LV_OBJ_FLAG_EVENT_BUBBLE
,所以可以将事件添加到菜单本身。lv_menu_back_button_is_root(menu, button) 检查该按钮是否为根页面的后退 按钮。
进一步了解所有部件发出的 Base-Widget Events。
进一步了解 Events(事件)。
Keys(按键)
菜单控件不处理任何 按键 。
阅读了解有关 Keys(按键) 的更多信息。