• 8891阅读
  • 7回复

请教QGraphicsScene中的mouseMoveEvent方法 [复制链接]

上一主题 下一主题
离线jz0301
 
只看楼主 倒序阅读 楼主  发表于: 2010-09-08
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
各位好!我想在SCENE中实现画线,操作如下:鼠标点击一点后释放,移动鼠标到另一点,再次点击鼠标并释放,完成画线。
现在我想在两次点击之间,鼠标移动时也能画线,只是线的终点是跟随鼠标移动的(同AutoCAD中画直线和折线的方法)。
在QGraphicsScene中有一个叫mouseMoveEvent的虚函数,但他只能在鼠标拖拽的时候得到响应,我想在没有按下任何鼠标按键的时候也可以得到响应,该如何做呢?
DM500S is just awesome!!!
离线xtfllbl

只看该作者 1楼 发表于: 2010-09-08
我想在没有按下任何鼠标按键的时候也可以得到响应


注意设置setMouseTracking
上海欢迎您
离线jz0301
只看该作者 2楼 发表于: 2010-09-08
版主您好啊
setMouseTracking是QWidget的方法啊,QGraphicsScene是直接派生自QObject的。
我试过在QGraphicsView中添加,但是没有作用。
DM500S is just awesome!!!
离线xtfllbl

只看该作者 3楼 发表于: 2010-09-08
上海欢迎您
离线jz0301
只看该作者 4楼 发表于: 2010-09-08
我试过的啊,的确不能直接响应啊,必须按下鼠标左键或者右键才能响应
DM500S is just awesome!!!
离线jz0301
只看该作者 5楼 发表于: 2010-09-09
http://www.qtcn.org/bbs/read.php?tid=17300
看看这个帖子,以前也有人碰到过类似的问题的
DM500S is just awesome!!!
离线beaujolais
只看该作者 6楼 发表于: 2010-09-10
我设置了setMouseTracking(true);  就可以了,以下代码

#include "myview.h"
[pre]MyView::MyView(QWidget *parent) :[/pre][pre] QGraphicsView(new QGraphicsScene(), parent)[/pre][pre]{[/pre][pre] scene()->setBackgroundBrush(QColor(127, 127, 127)); // 设置场景背景[/pre]
[pre] setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);[/pre][pre] setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);[/pre][pre] setFrameShape(QFrame::NoFrame);[/pre][pre] setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);[/pre]
[pre] this->setMouseTracking(true);[/pre][pre]}[/pre][pre]void MyView::paintEvent(QPaintEvent *event)[/pre][pre]{[/pre]
[pre]}[/pre]
[pre]void MyView::resizeEvent(QResizeEvent *event)[/pre][pre]{[/pre][pre] layoutChanged();[/pre][pre]}[/pre]
[pre]void MyView::dataChanged()[/pre][pre]{[/pre]
[pre]}[/pre]
[pre]void MyView::layoutChanged()[/pre][pre]{[/pre][pre] update();[/pre][pre]}[/pre][pre]void MyView::mouseMoveEvent(QMouseEvent *event)[/pre][pre]{[/pre][pre] qDebug()<<event->pos();[/pre][pre] update();[/pre][pre]}[/pre]
离线shuaicoin

只看该作者 7楼 发表于: 2017-06-06
view 中设置setMouseTracking(true);
快速回复
限100 字节
 
上一个 下一个