У меня есть одна QGraphicsScene
в качестве основной сцены с несколькими подвижными QGraphicsItem
в ней и еще одна QGraphicsScene
поверх основной сцены в качестве наложения. Сцена наложения имеет точно такой же размер, как и дисплей пользователя, тогда как основная сцена намного больше, поэтому ее необходимо автоматически прокручивать вверх и вниз.
Если элемент в основной сцене будет перемещен, я хочу удалить этот элемент из основной сцены и добавить его в сцену наложения, позволить пользователю перемещать элемент в сцене наложения, и как только мышь будет отпущена верните его на главную сцену. Это позволяет мне плавно автоматически прокручивать основную сцену, когда элемент приближается к краям экрана.
Проблема в следующем; когда элемент удаляется со сцены, он получает событие QMouseUngrab
, поэтому невозможно продолжить перемещение элемента, не щелкнув его еще раз в сцене наложения. Я пытался предотвратить событие отмены захвата или создать поддельный QMousePress
в оверлейной сцене, однако ни один из них не решил проблему.
У вас есть идея, как я могу начать перемещать элемент в одной сцене и продолжать перемещать его в другой сцене без перерыва?
Другими словами:
QMousePress
происходит в главной сцене- Несколько
QMouseMove
и, наконец,QMouseRelease
должны появиться в оверлейной сцене. - Сразу после
QMouseRelease
предмет будет возвращен на главную сцену.