• 6708阅读
  • 7回复

在mainwindow中如何获取QGraphicsItem的坐标? [复制链接]

上一主题 下一主题
离线bkey
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-20
使用下边的代码,输出的永远都是0,那里出错了?
QList<QGraphicsItem *> itemlist=scene->items();
QPointF pos=itemlist.at(0)->scenePos();
qDebug()<<"x:"<<pos.x()<<"y:"<<pos.y();
离线XChinux

只看该作者 1楼 发表于: 2013-01-20
你为什么痖输出scenePos()? 为什么不输出pos()?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线bkey

只看该作者 2楼 发表于: 2013-01-21
回 1楼(XChinux) 的帖子
输出pos也是一个样
离线0354030w

只看该作者 3楼 发表于: 2013-01-21
List(0)在场景中的坐标就是(0,0)
离线bkey

只看该作者 4楼 发表于: 2013-01-22
回 3楼(0354030w) 的帖子
没搞懂QGraphicsScene 的坐标问题
就算我setLine(20,0,50,100);
获取到坐标也是0,0
应该如何实现获取坐标?想获取图像在显示区域的坐标
离线bkey

只看该作者 5楼 发表于: 2013-01-22
似乎是我概念没理解清楚,貌似没有移动的情况下scene item view 三个的坐标,在显示区域左上角都是0,0,重叠的,但是setLine(20,0,50,100);  这个坐标如何获取呢?
离线twicave

只看该作者 6楼 发表于: 2013-01-23
坐标的问题期待专业人员讲解。
按我的理解。因为你并没有move item.所以无论你把线画在哪里,它的pos.始终都是0
你可以试验一下将上述lineItem Move(10, 0),看看它后来的位置是不是在已绘制的基础上平移了。
离线bkey

只看该作者 7楼 发表于: 2013-01-24
回 6楼(twicave) 的帖子
其实我的线是根据鼠标点击来画的,因此线显示的位置不是0,0开始,我理解是,如果用move来移动过item,就会检测好坐标移动,否者就算显示位置不是0,0开始 ,也会认为这个item的起始位置是0,0
快速回复
限100 字节
 
上一个 下一个