我有一个QGraphicsScene
作为主场景,其中有几个可移动的QGraphicsItem
s和另一个QGraphicsScene
作为叠加层。叠加场景与用户的显示器尺寸完全相同,而主场景要大得多,因此需要自动上下滚动。如何将QGraphicsItem移动到另一个场景而不会丢失鼠标?
如果主场景中的项目要移动,我想从主场景中删除该项目并将其添加到叠加场景中,让用户将该项目移动到叠加场景中,并且尽快鼠标被释放后将其放回主场景。这使我可以在物体接近显示器的边缘时顺利地自动滚动主场景。
问题如下;当某个物品从其场景中移除时,它会收到一个QMouseUngrab
事件,因此无法在覆盖物场景中再次单击它时继续移动该物品。我试图阻止ungrab事件或在overlayscene中生成假冒QMousePress
,但是他们都没有解决这个问题。
你知道我该如何开始在一个场景中移动一个项目,并继续在另一个场景中移动它而没有任何中断?
换句话说:
QMousePress
发生在主场景- 几个
QMouseMove
秒和最终一个QMouseRelease
应在覆盖场景 - 权发生
QMouseRelease
后,该项目将被放回主场景