QGraphicsItem setTransformOriginPoint似乎被忽略了

时间:2012-08-04 07:50:38

标签: c++ linux qt qgraphicsitem

我希望将QGraphicsItem转换为Qt::YAxis,效果非常好。

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

有人可以确认类似这样的问题吗?

或者我可以做些什么来改变我右侧的物品?

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

1 个答案:

答案 0 :(得分:0)

QTransform包含转换的所有内容,包括您希望转换发生的起源。 setTransformOriginPoint()仅影响rotate()等未指定来源的简单函数。

尝试在添加rotate()之前将translate添加到QTransform。

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

修改

是的,QTransform中的QGraphicsItem使用起来并不是很简单。它也非常有限,你可以做什么。从Qt 4.6开始,QGraphicsTransform可用于对转换进行更高级别的控制。这可能就是你要找的东西。