2017-01-24 5 views
0

バックグラウンドの特定の座標(x、y)に別のアイテム(背景)の上にアイテム(前景)を配置したいとします。背景は であり、前景と背景は親子関係にありません。QGraphicsItem :: mapFromItem()は変換を考慮していますか?

私は、このようにするだろう:

foreground->setPos(foreground->mapToParent(
     foreground->mapFromScene(background->mapToScene(x, y)))) 

まず背景は背景の形質転換後になる座標のシーンに、前景アイテムの親へのシーンから、このCOORDをマッピングする場所を決定setPos()のための座標系コール。

しかし、これは(少なくとも私の場合)と同等であるように思わに:任意の変換のためのmapFromItem(item)アカウントがitemに適用ん

foreground->setPos(foreground->mapToParent(
     foreground->mapFromItem(background, (x, y)))) 

?あるいは、同等性は私の全体的な状況の成果物ですか?

答えて

0

フォアグラウンドがバックグラウンドの親であると定義すると、フォアグラウンドの位置が変更された場合、Qtは自動的にバックグラウンドを翻訳します。

background->setParent(foreground); 
background->setPos(20,20); // cooridinate system origin is pos() of foreground. 
foreground->setPos(10,10); // background moves also 
関連する問題