| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3157 人关注过本帖
标题: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
快速回复:QGraphicsItem旋转为什么不以自己的item坐标原点旋转?
数据加载中...
 
   



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

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