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