我正在创建一个QGraphicsView
衍生的小部件,除其他外,它需要在其中的项目之间创建连接——有点像控制流图。但我无法实现一种“绘制”连接的方法
我尝试了两种方法:
QGraphicsLineItem
在触发源对象时创建一个派生对象mouseMoveEvent(..)
,并在每次后续移动时更新它。该线已成功绘制和更新,但最终这不起作用,因为似乎移动鼠标“锁定”事件循环只处理鼠标移动事件,所以另一个对象的 hoverEnterEvent(..)/hoverMoveEvent(..)/等等 不调用方法(这些方法是完成连接所必需的)。- 在 mouseMoveEvent(..) 中创建一个
QDrag
实例以创建两个对象之间的连接允许两个对象在删除后形成连接,但最终这不起作用,因为该QDrag::exec()
调用无法通知其他对象鼠标移动- 所以绘制的连接无法更新。
我真的需要两者的混合:在一个完美的世界中,QDrag::exec()
调用将允许其他某种鼠标移动通知,所以我可以更新表示连接的对象。有人有建议吗?
类似于这个问题。