Qt 应用QGraphicsItem::ItemIgnorsTransformation标志后,旋转不应工作

Qt 应用QGraphicsItem::ItemIgnorsTransformation标志后,旋转不应工作,qt,rotation,qgraphicsview,Qt,Rotation,Qgraphicsview,我在图形视图中有三个层次的项目: 其ItemIgnorestTransformations处于禁用状态的ellipse2(父图形视图) ItemIgnorestTransformations处于启用状态的ellipse3(父ellipse2) 其ItemIgnorestTransformations处于禁用状态的文本项(父项ellipse3) 所以现在我只想在旋转ellipse3时旋转textItem,而不是在旋转整个视图时旋转textItem。 在视图旋转的情况下,它可以正常工作,但当我旋转e

我在图形视图中有三个层次的项目:

  • 其ItemIgnorestTransformations处于禁用状态的ellipse2(父图形视图)
  • ItemIgnorestTransformations处于启用状态的ellipse3(父ellipse2)
  • 其ItemIgnorestTransformations处于禁用状态的文本项(父项ellipse3)
  • 所以现在我只想在旋转ellipse3时旋转textItem,而不是在旋转整个视图时旋转textItem。 在视图旋转的情况下,它可以正常工作,但当我旋转ellipse3时,文本也会旋转,尽管其转换已关闭。请向我解释这是如何可能的

    #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();
    }
    
    #包括
    #包括
    #包括
    #包括
    #包括
    int main(int argc,char*argv[])
    {
    质量保证申请a(argc、argv);
    QGraphicsView graphicsView;//图形视图
    Qgraphicscene Graphicscene;
    graphicsView.setScene(&graphicscene);
    QGraphicsEllipseItem ellipse2(QRectF(0,0,4,4));//ellipseItem2
    setFlags(QGraphicsItem::ItemIgnorestTransformations);
    Graphicscene.addItem(&ellipse2);
    QGraphicsEllipseItem ellipse3(QRectF(10,0,4,4),&ellipse2);//ellipseitem 3
    QGraphicsTextItem textItem(“文本”、&ellipse3);
    setFlags(QGraphicsItem::ItemIgnorestTransformations);
    textItem.setPos(10,0);
    椭圆3.旋转(90);
    graphicsView.show();
    返回a.exec();
    }
    
    在Qt中,转换从父项传递给子项。但是在我的例子中,我已经放弃了子textItem的转换,但是当我调用rotate ellipse3时,它的转换会传递给子项。