MyScene::MyScene(QObject *parent)
: QGraphicsScene(parent)
{
QGraphicsRectItem *rect1 = new QGraphicsRectItem(-20,-20,40,40);
rect1->setFlags( QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable);
rect1->setFlag(QGraphicsItem::ItemIsMovable,false);
this->addItem(rect1);
}
void MyScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent){
QList<QGraphicsItem *> selectItems = this->items(mouseEvent->scenePos());
QTransform t;
if (mouseEvent->button()==Qt::LeftButton){
if (!selectItems.isEmpty())
{
QGraphicsRectItem *selectItem = dynamic_cast<QGraphicsRectItem *>(selectItems.at(0));
if (selectItem)
{ selectItem->setSelected(true);
selectItem->setTransform(QTransform().scale(1,2),true);
}
}
}
else if (mouseEvent->button()==Qt::RightButton)
{
if (!selectItems.isEmpty())
{
QGraphicsRectItem *selectItem = dynamic_cast<QGraphicsRectItem *>(selectItems.at(0));
if (selectItem)
{
selectItem->setSelected(true);
selectItem->setTransform(QTransform().rotate(90),true);
}
}
}
QGraphicsScene::mousePressEvent(mouseEvent);
}

(图一)开始时状态
(图二)左击后状态
(图三)再右击后状态
(图四)再左击后状态
(图五)再左南后状态
左击是将矩形x文向不变,y方向放大两倍
右击是将矩形旋转90度。
可是我想问:图二和图三为什么没有变化(矩形本身没有旋转,只是坐标系旋转了呢)