QGraphicsView前有QWidget遮罩,导致QGraphicsItem鼠标事件不响应

场景:在一个QWidget上放置了一个QGraphicsView用于显示图像,QGraphicsView设置了场景,并添加了一个自定义QGraphicsItem。由于需求原因,又绘制了一个标尺QWidget放在QGraphicsView前部。

QGraphicsView前有QWidget遮罩,导致QGraphicsItem鼠标事件不响应_第1张图片

结果导致标尺QWidget显示时,重写的QGraphicsItem鼠标事件怎么都不响应,设置setAcceptedMouseButtons(Qt::LeftButton);也不管用。除非将标尺QWidget隐藏。

最后通过给标尺QWidget设置以下属性解决:

setAttribute(Qt::WA_TransparentForMouseEvents);

如果当前要求某个QWidget不透明,但又需要其鼠标能够穿透。可以通过该语句达到效果

你可能感兴趣的:(qt)