• 2432阅读
  • 4回复

求助:遮罩效果的实现问题 [复制链接]

上一主题 下一主题
离线328689042
 

只看楼主 倒序阅读 楼主  发表于: 2020-05-12
— 本帖被 liudianwu 从 Qt 作品展 移动到本区(2020-05-12) —
大家好,我是新手,有问题求助大家,目前实现的效果如下所示:


就是一个类似截屏软件遮罩的效果,鼠标点击的时候有个蓝色圈,目前遇到的问题是,所有鼠标事件都被这个遮罩(QWidget)处理了,遮罩下的界面无法接收鼠标事件了,我试了下遮罩上的setAttribute(Qt::WA_TransparentForMouseEvents, true)方法后如下所示


发现遮罩下的记事本捕获到鼠标事件,可以进行输入了,但是我的遮罩层没有捕获到鼠标事件,绿色小圆圈没有了
我想点击遮罩的时候,即可以让遮罩处理鼠标事件,又可以让后面的记事本捕获到鼠标,请问该怎么处理啊?
离线笑颜

只看该作者 1楼 发表于: 2020-05-12
有个鼠标穿透的属性,你需要了解一下。
离线328689042

只看该作者 2楼 发表于: 2020-05-12
回 笑颜 的帖子
笑颜:有个鼠标穿透的属性,你需要了解一下。 (2020-05-12 08:45) 

setAttribute(Qt::WA_TransparentForMouseEvents,true) 这个方法可以实现鼠标穿透,但是穿透后,我就无法画上图里的绿色圆圈了啊,因为当前窗体完全屏蔽了鼠标事件了,我不想这样,我想实现的是当前窗体实现完鼠标时间后,后面的窗体继续处理鼠标动作
离线maxlogo

只看该作者 3楼 发表于: 2020-05-12
event->ignore(), 不接受事件就行了
个人博客:
简书:https://www.jianshu.com/u/14fa805306bd
CSDN:https://blog.csdn.net/qq10097355
思否:https://segmentfault.com/u/lowbees/articles
离线笑颜

只看该作者 4楼 发表于: 2020-05-14
回 328689042 的帖子
328689042:setAttribute(Qt::WA_TransparentForMouseEvents,true) 这个方法可以实现鼠标穿透,但是穿透后,我就无法画上图里的绿色圆圈了啊,因为当前窗体完全屏蔽了鼠标事件了,我不想这样,我想实现的是当前窗体实现完鼠标时间后,后面的窗体继续处理鼠标动作 (2020-05-12 09:44) 

你参考https://github.com/xiaoyanLG/Barrage/blob/master/xysignalbarragescreen.cpp的void XYSignalBarrageScreen::changeMouseThrough(),可能是你想要的
快速回复
限100 字节
 
上一个 下一个