2013-02-11 81 views
1

我正在調整大小的QGraphicsItem(MITEM)如下:調整大小的QGraphicsItem不更新項目性質

QRectF itemSize = mItem->boundingRect(); 

    float scale_width = width/itemSize.width(); 
    float scale_height = height/itemSize.height(); 

    QTransform t; 
    t.scale(scale_width, scale_height); 
    mItem->setTransform(t); 

,在視覺上它做什麼,它應該,但如果我調整後得到boundingRect,它有沒有改變。 我的印象是,boundingRect可能不會改變,但規模,但也保持不變。如果原始的boundingRect是(0,0,100,100),新的寬度id是200,新的高度是200,我希望新的boundingRect是(0,0,200,200)。

我在做什麼錯了?

回答

1

該轉換提供了對象空間和場景(世界)空間(或可能是父對象空間)之間的映射以進行渲染 - 應用於對象本身的是而不是

因此,設置一個對象的縮放變換,不會改變它的邊界框,因爲該對象沒有被縮放 - 只有它被映射到場景中的方式具有。 docs解釋它比我更好。

QGraphicsItem有很多mapTo...mapFrom...方法,提供您所需要的。

相關問題