• 5610阅读
  • 4回复

[提问]怎样Drag时画线?(在QGraphicsScene中)(已解决) [复制链接]

上一主题 下一主题
离线liuxu_lx7
 
只看楼主 倒序阅读 楼主  发表于: 2011-09-19
怎样Drag时画线

我的QGraphicsItem派生类产生QDrag, 在执行QDrag::exec(...)后,以下的mouseMoveEvent全都没有被调用:
QGraphicsItem::mouseMoveEvent(...)
QGraphicsScene::mouseMoveEvent(...)
QGraphicsView::mouseMoveEvent(...)
请问这时,在哪里能捕获到当前鼠标的位置?

【void    dragMoveEvent ( QDragMoveEvent * event ) 】 在这里也不对,它只在【void    dragEnterEvent ( QDragEnterEvent * event )】条件成立后才被响应。


离线liuxu_lx7
只看该作者 1楼 发表于: 2011-09-19
回 1楼(kukulv) 的帖子
哦,解决了,原来是这样。
派生一下QGraphicsView, 重写
    void        dragEnterEvent(QDragEnterEvent *event);
    void        dragMoveEvent(QDragMoveEvent *event);
    void        dropEvent(QDropEvent *event);
关键是在dragEnterEvent里要有event->accept();被执行,才会在之后执行dragMoveEvent。在dragMoveEvent里可以调用update,间接调用paint, 就可以写自己的绘图了。
离线liuxu_lx7
只看该作者 2楼 发表于: 2011-09-19
折腾N久,终于解决了。。
离线zdmflies

只看该作者 3楼 发表于: 2012-02-21
求源码。。。。。。贴出来也行啊,或者发至zdmflies@126.com
离线kailai321321

只看该作者 4楼 发表于: 2014-04-17
求源码。。。。。。贴出来也行啊,或者发至kailai321321@163.com
快速回复
限100 字节
 
上一个 下一个