我想通过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

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

或者我可以做些什么来在右侧转换我的项目?

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

最佳答案

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 可用于对转换进行更高级别的控制。那可能就是您想要的。

关于c++ - QGraphicsItem setTransformOriginPoint似乎被忽略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11806901/

10-12 19:47