开关(lv_switch)¶
概述¶
开关可用于打开/关闭某物。它看起来像一个小滑块。
零件和样式¶
开关使用以下部分
LV_SWITCH_PART_BG
: 主要部分LV_SWITCH_PART_INDIC
: 指标(虚拟部分)LV_SWITCH_PART_KNOB
: 旋钮(虚拟部分)
零件和样式与 滑杆(lv_slider) 情况相同。阅读其文档以获取详细说明。
用法¶
变更状态¶
可以通过单击或通过下面的函数更改开关的状态:
lv_switch_on(switch, LV_ANIM_ON/OFF)
开lv_switch_off(switch, LV_ANIM_ON/OFF)
关lv_switch_toggle(switch, LV_ANOM_ON/OFF)
切换开关的位置
动画时间¶
切换开关状态时的动画时间可以使用 lv_switch_set_anim_time(switch, anim_time)
进行调整。
范例¶
简单开关¶
上述效果的示例代码:
1 #include "../../../lv_examples.h"
2 #include <stdio.h>
3 #if LV_USE_SWITCH
4
5 static void event_handler(lv_obj_t * obj, lv_event_t event)
6 {
7 if(event == LV_EVENT_VALUE_CHANGED) {
8 printf("State: %s\n", lv_switch_get_state(obj) ? "On" : "Off");
9 }
10 }
11
12 void lv_ex_switch_1(void)
13 {
14 /*Create a switch and apply the styles*/
15 lv_obj_t *sw1 = lv_switch_create(lv_scr_act(), NULL);
16 lv_obj_align(sw1, NULL, LV_ALIGN_CENTER, 0, -50);
17 lv_obj_set_event_cb(sw1, event_handler);
18
19 /*Copy the first switch and turn it ON*/
20 lv_obj_t *sw2 = lv_switch_create(lv_scr_act(), sw1);
21 lv_switch_on(sw2, LV_ANIM_ON);
22 lv_obj_align(sw2, NULL, LV_ALIGN_CENTER, 0, 50);
23 }
24
25 #endif
相关API¶
TODO