标题:QGraphicsItem旋转为什么不以自己的item坐标原点旋转?
只看楼主
syaowen
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-1-26
 问题点数:0 回复次数:0 
QGraphicsItem旋转为什么不以自己的item坐标原点旋转?
程序代码:
#include "myitem.h"
#include<QtGui>

MyItem::MyItem()
{
    setFlags(ItemIsFocusable|ItemIsMovable);
    boundingRect();
    rect.setRect(-18,-18,36,36);
}
QRectF MyItem::boundingRect() const
{
    return QRectF(rect);
}

void MyItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
    prepareGeometryChange();
    rect.moveCenter(event->pos()-offset);
    update();
}
void MyItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
    painter->drawRect(rect);
}
void MyItem::keyPressEvent(QKeyEvent *event)
{
    switch (event->key())
    {
    case Qt::Key_4 :
        rotate(-30);
        break;
    case Qt::Key_6 :
        rotate(30);
        break;
    case Qt::Key_Up:
        scale(1.2,1.2);
        break;
    case Qt::Key_Down:
        scale(1/1.2,1/1.2);
        break;
    }
}
void MyItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
    setFocus();
    offset=event->pos()-rect.center();
}

正常item缩放旋转都是以图形项坐标原点变化的,为什么我这么一改就只能按item初始位置的坐标点变化了?
item.setPos(x,y); 就按(x,y)点旋转、缩放,如果没设置就是场景坐标的(0,0)点。我的boundingRect也跟着改变了位置,为什么不是按着图形项坐标原点变化?
搜索更多相关主题的帖子: include return option update widget 
2015-01-26 10:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-441474-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.719482 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved