在QGraphicsView的ScrollHandDrag模式下,如何停止QGraphicsItems在场景中的移动?

Eng*_*ain 7 qt qt4 qgraphicsview qgraphicsitem qgraphicsscene

QGraphicsItem在场景的不同部分有多个场景.在应用程序中,有一种模式的用户可以滚动场景(手掌拖动模式).为了实现滚动在现场我设定dragModeQGraphicsViewScrollHandDrag.

但问题是当用户试图通过拖动(MousePressMouseMove)任何QGraphicsItem而不是滚动场景来滚动场景时,它会移动QGraphicsItem.

如何停止移动QGraphicsItem和滚动场景,但我还是想选择QGraphicsItems?

任何解决方案或任何指针都会有所帮助.

注意:有非常多的QGraphicsItems和各种类型.所以无法在QGraphicsItems 上安装事件过滤器.

FSa*_*tto 7

我没有修改项目标志,而是在ScrollHandDrag模式下将整个视图设置为不具有交互性.问题是,您需要有一个额外的交互类型(即控制键,其他鼠标按钮等)来启用它.

setDragMode(ScrollHandDrag);
setInteractive(false);
Run Code Online (Sandbox Code Playgroud)