场景:在一个QWidget上放置了一个QGraphicsView用于显示图像,QGraphicsView设置了场景,并添加了一个自定义QGraphicsItem。由于需求原因,又绘制了一个标尺QWidget放在QGraphicsView前部。
结果导致标尺QWidget显示时,重写的QGraphicsItem鼠标事件怎么都不响应,设置setAcceptedMouseButtons(Qt::LeftButton);也不管用。除非将标尺QWidget隐藏。
最后通过给标尺QWidget设置以下属性解决:
setAttribute(Qt::WA_TransparentForMouseEvents);
如果当前要求某个QWidget不透明,但又需要其鼠标能够穿透。可以通过该语句达到效果