我創建了一個QGraphicsView
衍生的窗口小部件,其中包括需要在其中的項目之間創建連接 - 有點像控制流圖。但我無法落實「畫」在發生拖動時更新QGraphicsItem
我已經試過兩種方法的連接方法:
- 創建
QGraphicsLineItem
派生的對象時,源對象的mouseMoveEvent(..)
被解僱,並與每個更新它隨後的舉動。這條線是成功繪製和更新的,但最終這不起作用,因爲移動鼠標將事件循環鎖定爲僅處理鼠標移動事件,因此其他對象的hoverEnterEvent(..)/ hoverMoveEvent(..)/等等方法不被調用(這些都需要完成連接)。 - 在mouseMoveEvent(..)中創建一個
QDrag
實例來創建兩個對象之間的連接允許兩個對象一旦丟棄就形成一個連接,但最終這是行不通的,因爲QDrag::exec()
調用不提供其他對象的手段通知鼠標移動 - 所以繪製的連接無法更新。
我真的需要這兩者的組合:在一個完美的世界QDrag::exec()
通話將允許其他某種的鼠標移動的通知,所以我可以更新代表連接的對象。有人有建議嗎?
類似於question。
它可能不會做的正是你想要的東西,但有Qt中的一個圖表場景例如:http:// qt-project.org/doc/qt-4.8/graphicsview-diagramscene.html –