2012-08-04 200 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