应用QGraphicsItem :: ItemIgnoresTransformation标志后,旋转不起作用

时间:2014-05-15 07:27:07

标签: qt rotation qgraphicsview

我在GraphicsView上有三个级别的项目层次结构:

  1. ItemIgnoresTransformations为OFF(父图形视图)
  2. 的ellipse2
  3. 一个ellip3,其ItemIgnoresTransformations为ON(父椭圆2)
  4. ItemIgnoresTransformations为OFF(父椭圆3)
  5. 的文本项

    所以现在我想要仅在旋转ellipse3时旋转textItem,而不是在旋转整个视图时旋转。 在视图旋转的情况下工作正常但是当我旋转ellipse3然后文本也旋转但它的转换是OFF请解释我是如何可能的?

    #include <QApplication>
    #include<QGraphicsView>
    #include<QGraphicsScene>
    #include<QGraphicsTextItem>
    #include<QDebug>
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        QGraphicsView graphicsView;//Graphics View
    
        QGraphicsScene graphicsScene;
        graphicsView.setScene(&graphicsScene);
    
        QGraphicsEllipseItem ellipse2(QRectF(0,0,4,4));//ellipseItem2
        ellipse2.setFlags(QGraphicsItem::ItemIgnoresTransformations);
        graphicsScene.addItem(&ellipse2);
    
        QGraphicsEllipseItem ellipse3(QRectF(10,0,4,4),&ellipse2);//ellipseitem3
    
        QGraphicsTextItem textItem("TEXT",&ellipse3);
        textItem.setFlags(QGraphicsItem::ItemIgnoresTransformations);
        textItem.setPos(10,0);
    
        ellipse3.rotate(90);
        graphicsView.show();
        return a.exec();
    }
    

0 个答案:

没有答案