标题:求助:遮罩效果的实现问题
作者:328689042
日期:2020-05-12 08:26
内容:
大家好,我是新手,有问题求助大家,目前实现的效果如下所示:
就是一个类似截屏软件遮罩的效果,鼠标点击的时候有个蓝色圈,目前遇到的问题是,所有鼠标事件都被这个遮罩(QWidget)处理了,遮罩下的界面无法接收鼠标事件了,我试了下遮罩上的setAttribute(Qt::WA_TransparentForMouseEvents, true)方法后如下所示
发现遮罩下的记事本捕获到鼠标事件,可以进行输入了,但是我的遮罩层没有捕获到鼠标事件,绿色小圆圈没有了
我想点击遮罩的时候,即可以让遮罩处理鼠标事件,又可以让后面的记事本捕获到鼠标,请问该怎么处理啊?
#1 [笑颜 05-12 08:45]
有个鼠标穿透的属性,你需要了解一下。
#2 回 笑颜 的帖子 [328689042 05-12 09:44]
笑颜:有个鼠标穿透的属性,你需要了解一下。 (2020-05-12 08:45)
setAttribute(Qt::WA_TransparentForMouseEvents,true) 这个方法可以实现鼠标穿透,但是穿透后,我就无法画上图里的绿色圆圈了啊,因为当前窗体完全屏蔽了鼠标事件了,我不想这样,我想实现的是当前窗体实现完鼠标时间后,后面的窗体继续处理鼠标动作
#3 [maxlogo 05-12 11:37]
event->ignore(), 不接受事件就行了
#4 回 328689042 的帖子 [笑颜 05-14 12:43]
328689042:setAttribute(Qt::WA_TransparentForMouseEvents,true) 这个方法可以实现鼠标穿透,但是穿透后,我就无法画上图里的绿色圆圈了啊,因为当前窗体完全屏蔽了鼠标事件了,我不想这样,我想实现的是当前窗体实现完鼠标时间后,后面的窗体继续处理鼠标动作 (2020-05-12 09:44)
你参考https://github.com/xiaoyanLG/Barrage/blob/master/xysignalbarragescreen.cpp的void XYSignalBarrageScreen::changeMouseThrough(),可能是你想要的