Qt的QGraphicsScene提供了一些不错的功能:用户可以选择对象并移动它们。如何获得QGraphicsScene报告项目移动事件
我想要一件事 - 当用户完成移动对象时收到通知。 有较低级别的事件,如鼠标移动,按下,释放,但我不想重新实现已存在的功能(移动对象)。
http://doc.trolltech.com/4.2/qgraphicsitem.html#itemChange方法看起来像它,但它不会在用户移动对象时调用。
我使用Qt 4.6
事实证明,你必须设置一个标志,启用此事件: 用品 - > setFlag(::的QGraphicsItem ItemSendsGeometryChanges,真正的);
但是现在每次项目的更改都会触发事件。我只想在用户完成更改时才有事件发生。
这就是我现在正在做的,它有点作品,但我更新程序的对象和结果它在每个鼠标释放所有对象被认为是移动,即使根本没有实际的运动。 – Viesturs 2010-01-05 14:51:00
你在哪里在你的视图/场景类或你的项目类中写这个函数? – Drewen 2010-01-05 14:54:54
这个函数在我的项目类中。 非平凡的情况是,可能有多个选定的对象被移动,所以我测试所有的项目被移动。 我想用QGraphicsScene :: selectedItems()会给出正确的结果。 – Viesturs 2010-01-07 08:51:49