本帖最后由 ifwz1729 于 2023-9-22 12:45 编辑
本系列图文连载,第9话
在第7话中,我们学习了用按钮播放视频,这一期,我们学习用两种方法 开/关 灯
方法一:
设计界面(妈耶,好丑啊)
点击按钮,a++,通过判断a的奇偶性控制灯的亮灭(学习一下if判断函数的用法)
让控件显隐的方法 https://blog.csdn.net/weixin_62808461/article/details/130648340
效果
贴下代码
- int a=0;
- static void screen_btn_1_event_handler (lv_event_t *e)
- {
- lv_event_code_t code = lv_event_get_code(e);
- switch (code) {
- case LV_EVENT_CLICKED:
- {
- a++;
- if( a % 2==0 ) //通过求余判断奇偶,比如a=3 ,求余 3 / 2= 1...1 ,余数=1 为奇数; a=4 ,求余4/2=2...0 为偶数
- {
- lv_obj_add_flag(guider_ui.screen_led_1, LV_OBJ_FLAG_HIDDEN); //隐藏
- }
- else
- {
- lv_obj_clear_flag(guider_ui.screen_led_1, LV_OBJ_FLAG_HIDDEN); //显示
- }
-
- break;
- }
- default:
- break;
- }
- }
-
- void custom_init(lv_ui *ui)
- {
- lv_obj_add_event_cb(ui->screen_btn_1, screen_btn_1_event_handler, LV_EVENT_ALL, NULL);
- }
复制代码
方法二:
使用思维驰(switch)控件 (我是红姐的粉丝,哈哈哈)
控件文档 http://lvgl.100ask.net/8.2/widgets/core/switch.html
贴上代码 (效果不知道为啥跟预想的不一样,代码按道理没写错)
- static void screen_sw_2_event_handler (lv_event_t * e)
- {
- lv_event_code_t code = lv_event_get_code(e);
- lv_obj_t * obj = lv_event_get_target(e);
-
- if(code == LV_EVENT_VALUE_CHANGED) {
- if(lv_obj_has_state(obj, LV_STATE_CHECKED)){ //判断是否开关
- lv_obj_clear_flag(guider_ui.screen_led_1, LV_OBJ_FLAG_HIDDEN); //显示
- }
- else{
- lv_obj_add_flag(guider_ui.screen_led_1, LV_OBJ_FLAG_HIDDEN); //隐藏
- }
- }
- }
-
- void custom_init(lv_ui *ui)
- {
- lv_obj_add_event_cb(ui->screen_sw_2, screen_sw_2_event_handler, LV_EVENT_ALL, NULL);
- }
复制代码
|
|