2012-08-04 765 views
1

我想变换一个QGraphicsItemQt::YAxis,什么效果很好。QGraphicsItem setTransformOriginPoint似乎被忽略

QTransform trans; 
trans.rotate (value, Qt::YAxis); 
item->setTransformOriginPoint (0,0); 
//item->setTransformOriginPoint (500, 250); 
item->setTransform (trans); 

我的问题是,setTransformOriginPoint似乎被忽略,因为它不工作。每次我的物品都在左侧转换。但我想通过它的右侧改造它,我认为我受到这个错误:

https://bugreports.qt-project.org/browse/QTBUG-13378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel

有人可以证实这样一个类似的问题?

或者我可以做些什么来改变我的项目在其右侧?

编辑:对不起,我忘了说,我不使用这个错误报告中描述的动画!

回答

0

A QTransform拥有关于转换的所有内容,包括想要转换发生的地方。 setTransformOriginPoint()仅影响不指定原点的简单功能,如rotate()

在添加rotate()之前,尝试将translate添加到您的QTransform中。

QTransform trans; 
trans.translate(500, 250).rotate(value, Qt::YAxis); 
item->setTransform(trans); 

编辑:

是,QTransformQGraphicsItem是不是很容易使用。它的作用也很有限。从Qt 4.6开始,QGraphicsTransform可用于更高级别的转换控制。这可能是你正在寻找的。

+0

ThanXx为你的提示,但这只是“移动”我的项目。它仍然转换/旋转我的项目在其左侧。 – user1533754 2012-08-05 07:56:57

+0

你是对的。 QTransform始终应用于项目原点。看到我的编辑答案。 – 2012-08-05 14:44:24

+0

好的,我是用QGraphicsRotation做的,所以这个类也提供了旋转的轴。谢谢! – user1533754 2012-08-06 13:56:02