• 3986阅读
  • 4回复

关于scene中位置的获取 [复制链接]

上一主题 下一主题
离线ljjdhr
 
只看楼主 倒序阅读 楼主  发表于: 2012-02-14
请问有知道如何获得scene中位置的方法么,通过鼠标移动实时显示在状态栏的label中
离线ninsun

只看该作者 1楼 发表于: 2012-02-15
方法很多...
scene的MouseMoveEvent里面可以获得坐标
view的MouseMoveEvent也可以获得一个坐标, 然后mapToScene();就获得scene下的坐标了

view的mapToScene(mapFromGlobal(QCursor::pos()));也可以在非mouseMoveEvent下面获得scene里的坐标.....
离线ljjdhr
只看该作者 2楼 发表于: 2012-02-15
回 1楼(ninsun) 的帖子
下面这段代码就是加在scene的mouseMoveEvent中,但是只有在移动Item的时候可以显示,此时鼠标必须按下,请问下面这段代码是不是有问题啊


QString coursePosition;
        QString temp_x;
        QString temp_y;
        QPointF coursePoint;
        if(mouseEvent->MouseTrackingChange)
        {

            coursePoint =mouseEvent->scenePos();

            //scenePos=coursePoint;

            temp_x.setNum(coursePoint.x());
            temp_y.setNum(coursePoint.y());
            coursePosition.append("scene Position\n");
            coursePosition.append(" X- ");
            coursePosition.append(temp_x);
            coursePosition.append(" Y- ");
            coursePosition.append(temp_y);
            QToolTip::showText(QCursor::pos(),coursePosition);//在光标处做一个小标签显示鼠标位置
离线ninsun

只看该作者 3楼 发表于: 2012-02-16
哦, 这个问题是因为没有设置MouseTracking的缘故吧
在view里面设置一下
setMouseTracking(true);
这样子, 即使鼠标不按下mousemove也会有响应了
离线ljjdhr
只看该作者 4楼 发表于: 2012-02-16
回 3楼(ninsun) 的帖子
我在mainwindow里写了view->setMouseTracking(true),但是不知道为什么还是不行呢
快速回复
限100 字节
 
上一个 下一个