OpenEdv-开源电子网

 找回密码
 立即注册
查看: 2898|回复: 6

lvgl弹出对话框,只允许触摸对话框,其他地方不许触摸

[复制链接]

13

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2012-5-3
在线时间
60 小时
发表于 2021-9-9 17:17:47 | 显示全部楼层 |阅读模式
1金钱
lvgl弹出对话框,只允许触摸对话框,其他地方不许触摸,例如电脑和手机弹出对话框,必须触摸关闭当前对话框,才能触摸其他地方,在LVGL上怎么实现

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2012-5-3
在线时间
60 小时
 楼主| 发表于 2021-9-10 09:42:59 | 显示全部楼层
没用大佬帮忙回答一下吗?
回复

使用道具 举报

9

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
234
金钱
234
注册时间
2014-8-13
在线时间
69 小时
发表于 2021-9-10 13:24:25 | 显示全部楼层
加个背景蒙版
回复

使用道具 举报

13

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2012-5-3
在线时间
60 小时
 楼主| 发表于 2021-9-10 14:40:51 | 显示全部楼层

有没有其他方法,例如将设置触摸范围,但是没有找到地方
回复

使用道具 举报

13

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2012-5-3
在线时间
60 小时
 楼主| 发表于 2021-9-14 08:41:41 | 显示全部楼层
说实在的,论坛看的人多,回复的人少,都是在回复热门的贴,而且回复都是感谢之类的话
回复

使用道具 举报

9

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
234
金钱
234
注册时间
2014-8-13
在线时间
69 小时
发表于 2021-9-14 14:22:51 | 显示全部楼层
bs1234 发表于 2021-9-14 08:41
说实在的,论坛看的人多,回复的人少,都是在回复热门的贴,而且回复都是感谢之类的话

是的,因为我问问题时也是基本没人回答,所以看到别人问问题时就算知道也懒得回答,心情好的时候才会说两句
回复

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2020-12-24
在线时间
19 小时
发表于 2021-9-26 23:13:53 | 显示全部楼层
lv_port_indev.c的改动
1.添加函数:
//设置输入设备的响应区域。en=true:仅允许obj区域范围响应输入设备;en=false:仅允许obj区域范围之外响应输入设备。
void set_touch_rect(lv_obj_t * obj,bool en)
{
        screen_rect.enabel=en;
        screen_rect.x1=obj->coords.x1;
        screen_rect.y1=obj->coords.y1;
        screen_rect.x2=obj->coords.x2;
        screen_rect.y2=obj->coords.y2;
}
2.lv_port_indev_init函数最后加入:
                /*初始化时允许输入设备响应整个屏幕*/
                set_touch_rect(lv_scr_act(),true);
3.touchpad_read函数前面加入语句:
        if(screen_rect.enabel)
        {
                if((tp_dev.x[0]>=screen_rect.x1) && (tp_dev.x[0]<=screen_rect.x2) && (tp_dev.y[0]>=screen_rect.y1) && (tp_dev.y[0]<=screen_rect.y2))
                {}else{return false;}
        }else
        {
                if((tp_dev.x[0]>=screen_rect.x1) && (tp_dev.x[0]<=screen_rect.x2) && (tp_dev.y[0]>=screen_rect.y1) && (tp_dev.y[0]<=screen_rect.y2))
                {return false;}
        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 18:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表