• 8562阅读
  • 3回复

关于QGraphicsLineItem坐标问题(已解决) [复制链接]

上一主题 下一主题
离线yleesun
 

只看楼主 倒序阅读 楼主  发表于: 2010-07-26
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
先继承至QGraphicsLineItem生成一线段图元,在加入场景时,是通过鼠标左键点击场景,在鼠标点击处生产线段图元,但是该图元的坐标原点始终是生成该图元鼠标的点击点,而非场景的左上角?请问有没有人知道!

添加图元到场景代码如下:

        //  pos 是鼠标点击处场景坐标。
        QPointF    pos = mouseEvent->scenePos();  
  
        QPointF posEnd = pos;
    posEnd += QPointF(200,0);
        item->setLine(QLineF(pos,posEnd));

    // 添加图元到场景
    addItem(item);
[ 此帖被yleesun在2010-07-26 09:25重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2010-07-26
引用楼主yleesun于2010-07-26 08:57发表的 关于QGraphicsLineItem坐标问题 :
先继承至QGraphicsLineItem生成一线段图元,在加入场景时,是通过鼠标左键点击场景,在鼠标点击处生产线段图元,但是该图元的坐标原点始终是生成该图元鼠标的点击点,而非场景的左上角?请问有没有人知道!
添加图元到场景代码如下:
        //  pos 是鼠标点击处场景坐标。
.......


两个问题:
1 但是该图元的坐标原点始终是生成该图元鼠标的点击点
如何判断的?还是说你直接用点击点坐标setPos到item

2 而非场景的左上角
为什么要是场景左上角?如果你没有对 item调用 setPos,其pos 是 (0,0)
离线yleesun

只看该作者 2楼 发表于: 2010-07-26
在生成图元之后,再选中图元后,会在属性栏中显示当前选中图元的坐标,显示的坐标是以生成时鼠标点击处为原点的!
这样在生成多个图元时,各个图元的坐标系都不统一!
离线yleesun

只看该作者 3楼 发表于: 2010-07-26
问题已经解决:设置线段的默认长度,应该在构造函数中设置,而不应该是在场景中设置。坐标系出了问题。
快速回复
限100 字节
 
上一个 下一个